MySQL查询,用于从特定数据库的所有表中获取所有列名



我需要从特定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';

相关内容

  • 没有找到相关文章