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
1. Usage scenarios There is such a requirement, s...
Table of contents definition structure Examples C...
CPU Load and CPU Utilization Both of these can re...
The effect we need to achieve: What is needed The...
I would like to quote an article by Zhang Xinxu a...
Table of contents Start by clicking the input box...
Table of contents Vue3 + TypeScript Learning 1. E...
These specifications are designed to allow for bac...
Suppose a user management system where each perso...
Install mysql5.7.18 on CentOS6.7 1. Unzip to the ...
This article shares the specific code of Vue to a...
Look at the code: Copy code The code is as follows...
1. Dashed box when cancel button is pressed <br...
In web development, you often encounter characters...
Install mysql under win10 1. Download MySQL from ...