Php MySQL使用REGEXP或类似工具选择具有数据库别名的表名
我的表格如下:Php MySQL使用REGEXP或类似工具选择具有数据库别名的表名,php,mysql,regex,Php,Mysql,Regex,我的表格如下: id | query - ------------------------------------------------ 1 | SELECT COUNT(*) FROM `test`.`user`; 2 | INSERT INTO `test`.`user` (id,name,email) VALUES ('4','Don','don@quikr.com'); 3
id | query -
------------------------------------------------
1 | SELECT COUNT(*) FROM `test`.`user`;
2 | INSERT INTO `test`.`user` (id,name,email)
VALUES ('4','Don','don@quikr.com');
3 | SELECT COUNT(*) FROM `test`.`data`;
我想在查询中获取带有“test
user
”模式的行 您可以使用LIKE
SELECT * FROM `tablename` WHERE `query` LIKE '%test%user%'
%是通配符。你可以把它放在前面,后面,或者中间,它可以被多次使用。上面的查询将查找任何按顺序包含“test”和“user”的内容,其中包含中间、之前或之后的任何字符
SELECT * FROM ... WHERE LOWER(query) LIKE '%`test`.`user`%'
这假设您在
周围没有任何空格。如果您使用REGEXP
,您可以在查询中获得对模式匹配的更多控制,例如
select `query` from test WHERE `query` REGEXP '.*test.*user.*';
使用REGEXP
提供查询的基本结构,该结构适用于您提出的问题,但可以根据您的需要进行修改
如图所示
有关使用
REGEXP
的可用元字符列表,请参见-检查失败的用例:从test
main
main内部连接db
user
usr中选择main.id、usr.name;如果表名为“user\u duplicate”或“usersomething”,则上述查询将失败。