【发布时间】:2017-05-23 20:57:36
【问题描述】:
在MySQL 中,我想查询信息架构以查找特定数据库中的表。
我在下面的选择语句中使用Regexp。
select TABLE_NAME from information_schema.tables where TABLE_SCHEMA='testing' and TABLE_NAME REGEXP 'test|test_10'
输出:
123_test
123_test_10
temp_test
temp_test_10
在这里,我得到了以 test 和 test_10 结尾的表列表,如 select 语句中所示。
我在下面使用时得到了相同的结果。
select TABLE_NAME from information_schema.tables where TABLE_SCHEMA='testing' and TABLE_NAME REGEXP 'test'
输出:
123_test
123_test_10
temp_test
temp_test_10
使用第二个语句,我怎样才能只获得以 'test` 结尾的表的列表。
我想要的预期输出是
预期输出:
123_test
我还想排除列表中的一些表。比如排除以temp开头并以test结尾的表
【问题讨论】:
-
显示一些示例输入和预期输出(包括所有异常)
-
您只是在寻找
test,而不是特定于字符串的末尾。test_10是多余的(根据提供的正则表达式)。TABLE_NAME REGEXP '(test|test_10)$'将以test或test_10结尾。 -
这些是
test和temp占位符还是只是文字值?我的意思是,如果这些是文字子字符串,LIKE是最好的选择。 -
@Active_user 。 . .我认为
temp_test也应该被退回。 -
你真的在寻找
test_10吗?看起来你从来没有真正想要那个。