有人可以帮我解决这个mysql问题吗?我正在尝试从db获取所有表名.
在我的数据库中,我有以下表:
_table1,_table2,table3,table4,table5_xrefs
但是我想在开头只得到没有_的表,最后没有_xref.所以在这个例子中我只需要table3和table4.
我正在使用show tables
显示所有表名称,并在我使用php匹配正确的表名后.我想知道我是否可以只使用mysql查询来做同样的事情.
dev*_*ler 50
这是可能的,但您必须知道从SHOW TABLES
查询返回的列名是字符串tables_in_
和数据库名称的串联.对于数据库,它看起来像这样test
:
SHOW TABLES
WHERE tables_in_test NOT LIKE '\_%'
AND tables_in_test NOT LIKE '%\_xrefs'
Run Code Online (Sandbox Code Playgroud)
但我更愿意使用information_schema
数据库来获取此信息:
SELECT TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = SCHEMA() /* = 'test'*/
AND TABLE_NAME NOT LIKE '\_%'
AND TABLE_NAME NOT LIKE '%\_xrefs'
Run Code Online (Sandbox Code Playgroud)