我现在正在学习 MySQL。我需要你的帮助来理解这些查询之间的区别:
select id from tab where id like '000';
select id from tab where id regex '000';
最佳答案
您的第一个查询使用 like
运算符,但不使用任何通配符。所以相当于:
select id from tab where id = '000';
仅列出那些 id
为 000
的 id
。
第二个查询使用 regex
运算符并列出 id
包含 000
anywhere 的行。
示例:它会列出这些 id
的:1000
,2000
,000
,0001
要使您的第一个查询表现得像第二个查询,您必须使用匹配零个或多个字符的通配符 %
:
select id from tab where id like '%000%';
要使您的第二个查询表现得像拳头一样,您必须使用 start anchor(^
) 和 end anchor($
):
select id from tab where id regex '^000$';
关于mysql - 喜欢和正则表达式运算符之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4078633/