我正在开发一个使用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
你觉得我忘了什么吗?
任何评论,优惠和建议表示赞赏。
答案 0 :(得分:2)
用
替换你的模式REGEXP '[^0-9][1-7][^0-9]'
\D
不受支持,您可以在括号表达式中使用范围。
模式详情
[^0-9]
- 任何字符数字[1-7]
- 从1
到7
[^0-9]
- 任何字符数字如果您还需要在字符串的开头/结尾处匹配,请使用
REGEXP '(^|[^0-9])[1-7]($|[^0-9])'
(^|[^0-9])
组匹配字符串的开头(^
)或任何字符,但数字和($|[^0-9])
匹配任何非数字或字符串的结尾($
)。