use*_*841 12 regex mysql sql sql-like
我现在正在学习MySQL.我需要你帮助理解这些查询之间的区别:
select id from tab where id like '000';
select id from tab where id regex '000';
Run Code Online (Sandbox Code Playgroud)
cod*_*ict 12
您的第一个查询使用like运算符但不使用任何通配符.所以它相当于:
select id from tab where id = '000';
Run Code Online (Sandbox Code Playgroud)
其中仅列出id的地方id是000.
第二个查询使用regex运营商和它列出行,其中id有000 随时随地在里面.
例如:它会列出这些id的:1000,2000,000,0001
要使您的第一个查询行为与第二个查询相同,您必须使用%匹配零个或多个字符的通配符:
select id from tab where id like '%000%';
Run Code Online (Sandbox Code Playgroud)
要使您的第二个查询行为与拳头一样,您必须使用start anchor(^)和end anchor($):
select id from tab where id regex '^000$';
Run Code Online (Sandbox Code Playgroud)