我需要从特定DB中的所有表中找到所有%phone%实例。
这是我正在尝试的脚本,但仍然可以获得所有的DB(我只需要从DB1):
use DB1;
SELECT *
FROM
information_schema.columns
WHERE
column_name LIKE '%phone%';
我也试过这样写:
SELECT *
FROM
DB1.information_schema.columns
WHERE
column_name LIKE '%phone%';
但我得到了该语法的SQL Error [1064] [42000]
。
查询此问题的正确方式是什么?
服务器上的所有数据库只有一个INFORMATION_SCHEMA
数据库。表数据库位于columns
表的table_schema
列中。
SELECT *
FROM information_schema.columns
WHERE table_schema = 'DB1' AND column_name LIKE '%phone%';
我对"%email%"使用了以下内容它奏效了。
所以我想它也会为你:
SELECT
DISTINCT TABLE_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME LIKE ('%phone%') AND TABLE_SCHEMA='DB1';
使用参数TABLE_SCHEMA来选择您的scheam/数据库
SELECT *
FROM
information_schema.columns
WHERE
column_name LIKE '%phone%'
AND TABLe_SCHEMA = 'DB1';