mysql REGEXP无法在在线版

时间:2017-08-01 13:37:36

标签: php mysql regex

我正在开发一个使用mysql REGEXP查找某些行的系统 在xampp localhost中,这很好用 我有这个问题:

SELECT COUNT(*) FROM users WHERE departments REGEXP '\\D(7|1|2|3|4|5|6)\\D' LIMIT 0, 25

它返回一些与我的REGEXP匹配的行。

departments column我必须匹配REGEX的users个表格行的[1,3,4,6,7]值:users

Navicat Premium表中使用相同的数据库和相同的数据,我上传了我的项目文件和数据库,但它没有返回任何值。
我曾经直接在modFDA = train(left~. , data = train, method = 'fda', tuneGrid = data.frame(degree = 1:10, nprune = 1:10), trControl = trainControl(method = 'cv', number = 10, repeats = 5)) 测试我的查询,并且它再次没有返回任何行 我localhost中的mysql版本是4.6.5.2,我的在线版本是4.6.6 你觉得我忘了什么吗? 任何评论,优惠和建议表示赞赏。

1 个答案:

答案 0 :(得分:2)

替换你的模式
REGEXP '[^0-9][1-7][^0-9]'

\D不受支持,您可以在括号表达式中使用范围。

模式详情

  • [^0-9] - 任何字符数字
  • [1-7] - 从17
  • 的数字
  • [^0-9] - 任何字符数字

如果您还需要在字符串的开头/结尾处匹配,请使用

REGEXP '(^|[^0-9])[1-7]($|[^0-9])'

(^|[^0-9])组匹配字符串的开头(^)或任何字符,但数字和($|[^0-9])匹配任何非数字或字符串的结尾($ )。

相关问题