使用LIKE&同时显示完整的表格WHERE子句

时间:2012-05-28 08:36:31

标签: mysql sql-like

我只需要使用一个查询来选择没有视图的表名范围:

示例:

SHOW FULL TABLES LIKE '%table%' WHERE "Table_type"<>'VIEW'

MySQL不允许在一个查询中使用这两个运算符,并且它使用包含数据库名称的Tables_in_(mydbname)之类的愚蠢列名,而不是像“Table_name”那样使用简单的列名。问题是我不知道数据库名称,所以我不能使用以下查询:

SHOW FULL TABLES WHERE "Table_type"<>'VIEW' AND "Tables_in_????" LIKE '%table%'

使用数字代替名称会很棒:

SHOW FULL TABLES WHERE COLUMN(1) LIKE '%table%' AND COLUMN(2) <>'VIEW' 

但没有这样的功能。

我无法使用INFORMATION_SCHEMA,因为托管服务提供商可以限制对此表的访问(或者我错了?),我的应用程序是广泛分发的。

你会告诉我什么?

1 个答案:

答案 0 :(得分:4)

查询INFORMATION_SCHEMA,特别是TABLESCOLUMNS表对您有用。

一个例子:

SELECT *
  FROM INFORMATION_SCHEMA.TABLES t
  JOIN INFORMATION_SCHEMA.COLUMNS c
    ON t.TABLE_CATALOG = c.TABLE_CATALOG
   AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
   AND t.TABLE_NAME = c.TABLE_NAME
 WHERE [some field] LIKE '%some_value%'
   AND ...