在MySQL數(shù)據(jù)庫中,有時候需要查找全庫中的關(guān)鍵字,這時候就需要用到一條簡單而強大的SQL語句。
SELECT DISTINCT TABLE_SCHEMA FROM information_schema.`COLUMNS` WHERE COLUMN_NAME LIKE '%關(guān)鍵字%';
上述SQL語句可以查找所有包含“關(guān)鍵字”的表和對應(yīng)的數(shù)據(jù)庫。其中:
SELECT DISTINCT TABLE_SCHEMA
:查詢出所有表所在的數(shù)據(jù)庫。FROM information_schema.`COLUMNS`
:從information_schema中的COLUMNS表中查找。WHERE COLUMN_NAME LIKE '%關(guān)鍵字%'
:篩選出列名(即字段名)包含“關(guān)鍵字”的數(shù)據(jù)。
在實際使用中,可以替換掉“關(guān)鍵字”進行查詢。
SELECT CONCAT('SELECT * FROM ', TABLE_NAME, ' WHERE ', COLUMN_NAME, ' LIKE ''%', '關(guān)鍵字', '%'';') AS RESULT FROM information_schema.`COLUMNS` WHERE COLUMN_NAME LIKE '%關(guān)鍵字%';
上述SQL語句可以生成針對所有包含“關(guān)鍵字”的表和字段的通用查詢語句。其中:
SELECT CONCAT('SELECT * FROM ', TABLE_NAME, ' WHERE ', COLUMN_NAME, ' LIKE ''%', '關(guān)鍵字', '%'';') AS RESULT
:使用CONCAT函數(shù)生成查詢語句。注意其中的引號需要使用兩個單引號代替一個。FROM information_schema.`COLUMNS`
:從information_schema中的COLUMNS表中查找。WHERE COLUMN_NAME LIKE '%關(guān)鍵字%'
:篩選出列名(即字段名)包含“關(guān)鍵字”的數(shù)據(jù)。
使用以上SQL語句,可以非常方便地進行MySQL全庫關(guān)鍵字查詢。