LIKE 和 GLOB 都可以用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1
区别:
(1)使用的通配符不一样
like: 百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。
glob: 星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。
(2)大小写是否敏感
like不区分大小写, glob区分大小写
举例:
1、查找字段A以AAA开头的任意值 select * from table_name where 字段A like 'AAA%' 2、查找字段A任意位置包含AAA的任意值 select * from table_name where 字段A like '%AAA%' 3、查找字段A第二位和第三位为 AA 的任意值 select *from table_name where 字段A like '_AA%' 4、查找字段A以 A 开头,且长度至少为 3 个字符的任意值 select * from table_name where 字段A like 'A_%_%' 5、查找字段A以 A 结尾的任意值 select *from table_name where 字段A like '%A' 6、查找字段A第二位为 A,且以 B 结尾的任意值 select *from table_name where 字段A like '_A%B' 7、查找字段A长度为 5 位数,且以 A 开头以 B 结尾的任意值(A,B中间三个下划线) select *from table_name where 字段A like 'A___B'
1、查找字段A以AAA开头的任意值 select * from table_name where 字段A GLOB 'AAA*' 2、查找字段A任意位置包含AAA的任意值 select * from table_name where 字段A GLOB '*AAA*' 3、查找字段A第二位和第三位为 AA 的任意值 select *from table_name where 字段A GLOB '?AA*' 4、查找字段A以 A 开头,且长度至少为 3 个字符的任意值 select * from table_name where 字段A GLOB 'A?*?*' 5、查找字段A以 A 结尾的任意值 select *from table_name where 字段A GLOB '*A' 6、查找字段A第二位为 A,且以 B 结尾的任意值 select *from table_name where 字段A GLOB '?A*B' 7、查找字段A长度为 5 位数,且以 A 开头以 B 结尾的任意值(A,B中间三个下划线) select *from table_name where 字段A GLOB 'A???B'