我试图选择在某列中包含带连字符的所有行。这就是我到目前为止所做的:
SELECT * FROM MyTable WHERE list RLIKE '\w-\w'
但是当我知道还有更多时,它只会返回1排。有什么想法吗?
谢谢
| List |
built-in
self-discipline
hang-up
....
编辑:不确定是否重要,但 list 是utf8_unicode_ci
答案 0 :(得分:2)
MySQL正则表达式不支持\w
(或任何其他字符类转义序列)。你必须写:
SELECT * FROM MyTable WHERE list RLIKE '[[:alnum:]_]-[[:alnum:]_]'
有关MySQL正则表达式的详细信息,请参阅Documentation。
答案 1 :(得分:0)
如果你想在不使用正则表达式的情况下尝试使用它,那么尝试使用通配符..不确定你是否无法使用它,但这也应该有效
SELECT * FROM MyTable WHERE list LIKE '%-%'