我有一个表,其中一个字段中有一个以逗号分隔的id列表(不是我在做)。我想知道我是否可以使用LIKE匹配此字符串中的数字?问题是我不想得到类似的数字。有没有办法匹配任何一方都没有数字字符的数字?
SELECT * FROM table WHERE activitiesids LIKE 6
| activitiesids |
---+---------------+---
| 3,16,8,6 |
---+---------------+---
| 6 |
---+---------------+---
| 7,560 |
---+---------------+---
答案 0 :(得分:3)
尚未测试但您可以尝试这样的事情:
SELECT * FROM table WHERE activitiesids REGEXP '[[:<:]][0-9]+[[:>:]]';
答案 1 :(得分:2)
类似的东西:
WHERE ids LIKE '%,16,%' OR ids LIKE '%,16' OR ids LIKE '16,%';
Postgresql甚至有模式匹配 - 我不知道mysql:
WHERE ids ~ '^(.*,)?16(,.*)?$';