MySQL SUBSTRING函数:如何选取长度不固定的字符串
MySQL 筛选以"i"开头、"g"结尾的字符串
不用纠结SUBSTRING,这种场景用通配符或者正则表达式更直接,两种常用方法给你:
方法1:LIKE 通配符(推荐,性能更优)
LIKE是MySQL做简单模糊匹配的首选,用%作为任意长度字符的通配符即可,直接写:
SELECT 目标列名 FROM 你的数据表 WHERE 目标列名 LIKE 'i%g';
i:严格匹配字符串开头的字符%:匹配中间任意长度(包括0个)的任意字符g:严格匹配字符串结尾的字符
如果需要区分大小写(默认不区分),可以加BINARY关键字:
SELECT 目标列名 FROM 你的数据表 WHERE BINARY 目标列名 LIKE 'i%g';
方法2:REGEXP 正则表达式(适合复杂匹配场景)
如果以后有更复杂的匹配规则,正则表达式会更灵活,这里匹配开头结尾的写法是:
SELECT 目标列名 FROM 你的数据表 WHERE 目标列名 REGEXP '^i.*g$';
^:标记字符串的起始位置.*:匹配任意字符(.)任意次数(*)$:标记字符串的结束位置
同样要区分大小写的话,加上BINARY:
SELECT 目标列名 FROM 你的数据表 WHERE 目标列名 REGEXP BINARY '^i.*g$';
SUBSTRING主要用来截取固定位置或长度的字符,不适合这种模糊匹配开头结尾的需求,直接用上面两种方法就搞定了。
内容的提问来源于stack exchange,提问作者LarryA8
相关产品推荐
相关产品推荐

