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)