Preface: In MySQL, the CONCAT() function is used to concatenate multiple strings into one string. Using this function, we can splice out the SQL that could not be obtained in one step. It may be much more convenient in work. The following mainly introduces several commonly used scenarios. Note: Applicable to version 5.7 and lower versions may be slightly different. 1. Join and query all users SELECT DISTINCT CONCAT( 'User: \'', USER, '\'@\'', HOST, '\';' ) AS QUERY FROM mysql.USER; # When ' appears in the concatenated string, you need to use the \ escape character 2. Join DROP tables SELECT CONCAT( 'DROP table ', TABLE_NAME, ';' ) FROM information_schema. TABLES WHERE TABLE_SCHEMA = 'test'; 3. Splice kill connection SELECT concat('KILL ', id, ';') FROM information_schema. PROCESSLIST WHERE STATE LIKE 'Creating sort index'; 4. Splice the statements to create a database SELECT CONCAT( 'create database ', '`', SCHEMA_NAME, '`', ' DEFAULT CHARACTER SET ', DEFAULT_CHARACTER_SET_NAME, ';' ) AS CreateDatabaseQuery FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ( 'information_schema', 'performance_schema', 'mysql', 'sys' ); 5. Concatenate statements to create users SELECT CONCAT( 'create user \'', user, '\'@\'', Host, '\'' ' IDENTIFIED BY PASSWORD \'', authentication_string, '\';' ) AS CreateUserQuery FROM mysql.`user` WHERE `User` NOT IN ( 'root', 'mysql.session', 'mysql.sys' ); # There is a password string. You can directly create a user with the same password as this instance by executing it in other instances 6. Export permission script This shell script also uses splicing #!/bin/bash #Function export user privileges pwd=yourpass expgrants() { mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT( 'SHOW GRANTS FOR ''', user, '''@''', host, ''';' ) AS query FROM mysql.user" | \ mysql -u'root' -p${pwd} $@ | \ sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}' } expgrants > /tmp/grants.sql echo "flush privileges;" >> /tmp/grants.sql 7. Lookup table fragmentation SELECT t.TABLE_SCHEMA, t.TABLE_NAME, t.TABLE_ROWS, concat(round(t.DATA_LENGTH / 1024 / 1024, 2), 'M') AS size, t.INDEX_LENGTH, concat(round(t.DATA_FREE / 1024 / 1024, 2), 'M') AS datafree FROM information_schema.tables t WHERE t.TABLE_SCHEMA = 'test' order by DATA_LENGTH desc; 8. Find the table without primary key. This is not used for splicing, so share it. #Find a table without a primary key in a certain librarySELECT table_schema, table_name FROM information_schema.TABLES WHERE table_schema = 'test' AND TABLE_NAME NOT IN ( SELECT table_name FROM information_schema.table_constraints JOIN information_schema.key_column_usage k USING ( constraint_name, table_schema, table_name ) WHERE t.constraint_type = 'PRIMARY KEY' AND t.table_schema = 'test' ); #Search for tables without primary keys except system librariesSELECT t1.table_schema, t1.table_name FROM information_schema. TABLES t1 LEFT OUTER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMA AND t1.table_name = t2.TABLE_NAME AND t2.CONSTRAINT_NAME IN ('PRIMARY') WHERE t2.table_name IS NULL AND t1.TABLE_SCHEMA NOT IN ( 'information_schema', 'performance_schema', 'mysql', 'sys' ) ; The above is the detailed content of the commonly used concatenation statements in MySQL. For more information about MySQL concatenation statements, please pay attention to other related articles on 123WORDPRESS.COM! You may also be interested in:
|
<<: Linux uses shell scripts to regularly delete historical log files
>>: A simple and in-depth study of async and await in JavaScript
An optimization solution when a single MYSQL serv...
My first server program I'm currently learnin...
Let's take a look at the command to restart t...
Nginx is a powerful, high-performance web and rev...
The process of installing MySQL database and conf...
I heard that there is an interview question: How ...
MySQL supports nested transactions, but not many ...
1. First download from the official website of My...
What we are simulating now is a master-slave syst...
1. CPU utilization sar -p (view all day) sar -u 1...
Preface I believe that everyone has had a simple ...
Recently, I need to package the project for membe...
Table of contents Preface $attrs example: $listen...
There are many tools available for backing up MyS...
The cut command in Linux and Unix is used to cu...