MySQL LIKE/REGEXP查询:如何精准匹配含ABC1单词的字符串
MySQL精准匹配包含"ABC1"开头单词的字符串解决方案
要实现你要的精准匹配,用LIKE很难做到,因为它没有单词边界的判断能力。推荐用MySQL的正则表达式匹配(REGEXP/RLIKE操作符),利用单词边界规则来过滤。
核心SQL语句
SELECT * FROM your_table WHERE your_column REGEXP '[[:<:]]ABC1';
规则解释
[[:<:]]是MySQL定义的单词起始边界,它匹配的是单词的开头位置——要么是字符串的起始处,要么是空格、标点等非单词字符的后面。- 这样就能确保
ABC1是某个独立单词的开头,不会匹配到像itisABC1000这种ABC1前面紧跟其他字符的情况。
进阶精准匹配(可选)
如果只想匹配ABC1后面跟着数字的单词(比如ABC1000、ABC123),可以把正则写成:
SELECT * FROM your_table WHERE your_column REGEXP '[[:<:]]ABC1[0-9]+';
[0-9]+表示匹配一个或多个数字,进一步缩小匹配范围。
匹配效果验证
- 符合要求会被匹配:
"SomeString ABC1000 Other" - 会被排除:
"itisABC1000 other other"
内容的提问来源于stack exchange,提问作者Yashawant Sawant
相关产品推荐
相关产品推荐

