MySQL搜索表名的一部分

23

我正在尝试选择在mysql数据库中以相同结尾的表,例如staff_name、manager_name、customer_name(示例)。 如果我有一个明确的表名,我会考虑以下类似的方法,因为它可以工作。

SELECT * FROM "%_name";

我也尝试使用%而不是下划线_,但没有成功。我不确定是否有其他通配符可以尝试。我已经搜索了一下,但似乎没有一个适用于表名的部分:/ 有什么建议吗?

2个回答

54
SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME like '%_name'
and TABLE_SCHEMA = 'your_db_name'

如果你想在当前数据库中搜索表,可以执行以下操作

SHOW TABLES LIKE '%_name'

7
您还可以使用 SHOW TABLES LIKE "%_name",这样稍微更短一些。 - Michael Schuller
哇!运行得很好,非常感谢朋友! :D - dgBP
@Schuller 那就更好了,谢谢!它与我所在的数据库有关,速度更快 :) :) - dgBP
能否显示表格及其内容? 它们都有相同的列名,因此我想查询特定列的内容。 例如,我想要以“%_name”结尾的所有表格,这些表格在“performance”列中没有性能1。 - dgBP
无法将表名的选择与表内容组合。使用动态SQL可能是可能的。但那是另一个问题。 - juergen d
显示剩余4条评论

4

您可以通过以下三种方式进行操作:

show tables like '%yourtablename'
show tables like '%yourtablename%'

show tables like 'yourtablename%'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接