1

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

 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%';

任何帮助将非常感激。

4

2 回答 2

5

尝试使用REGEXP而不是REGEX...;)

于 2013-01-22T17:21:10.010 回答
2

除了 sp00m 指出的内容之外,相当确定您的正则表达式不是您正在寻找的。 ^$分别匹配行的开头和结尾,因此使用这些正则表达式:

^ab$
^united states$

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

ab

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

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

于 2013-01-22T17:34:55.793 回答