mysql正则表达式搜索不起作用

时间:2013-01-22 17:10:38

标签: mysql regex

我正在尝试执行此操作,但它会抛出错误。有人可以帮忙吗?

 SELECT * FROM `country` WHERE name regex '^ab$';
  

1064 - 您的SQL语法出错;查看与MySQL服务器版本对应的手册,以便在第1行'regex'^ ab $'LIMIT 0,30'附近使用正确的语法

  • 我的座右铭是在用户时获得“美国”记录 搜索任何短语,如

    美国/美国/州联合/美国联合/美国各州

任何人都可以告诉我如何为此要求编写正则表达式。

 SELECT * FROM `country` WHERE name regex '^united states$';

但是Like

一起运作正常
SELECT * FROM `country` WHERE name like '%ab%';

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

尝试使用REGEXP代替REGEX ... ;)

答案 1 :(得分:2)

除了sp00m注意到的内容之外,相当确定你的正则表达式不是你想要的。 ^$分别匹配行的开头和结尾,因此使用这些正则表达式:

^ab$
^united states$

有效地寻找“ab”和“美国”的完全匹配。如果您要查找等同于like '%ab%'的查询,请删除行尾的字符,您的正则表达式只是:

ab

我确实想知道使用LIKE '%ab%'有什么问题。似乎更典型的方法。

然而,这两个选项都不会使正则表达式united states^united states$或使用类似的匹配“美国联合”但

相关问题