作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用户表,其中包含一列(例如兴趣),以逗号分隔的兴趣 ID 作为值。例如
user interests
A 12,13,15
B 10,11,12,15
C 9,13
D 10,12
现在,我有一个字符串,其中逗号分隔值为“13,15”。
我想从上表中获取兴趣为 13,15 的用户,这意味着它应该返回用户 A、B 和 C,因为用户 A 包含兴趣 (13,15),用户 B 则将兴趣与 15 & 匹配用户将兴趣与 13 匹配。
当我的表中有很多用户时,SQL 是什么。
最佳答案
可以像@1000111所说的那样使用正则表达式来完成,但是使用更复杂的正则表达式。看看这个,例如:
(^|,)(13|15)(,|$)
这不会匹配 135 中的 13,或 13 中的 1 等等。例如,对于数字 13,这将匹配接下来的字符串:
1,13,2
13,1,2
1,13
13,2
13
但不会匹配这些
1,135,2
131,2
1,113
这是查询:
SET @search = '13,15';
SELECT *
FROM test
WHERE interests REGEXP CONCAT('(^|,)(', REPLACE(@search, ',', '|'), ')(,|$)')
关于MySQL 查询 : Match comma separated value with column containing comma separted string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57883163/
我有一个用户表,其中包含一列(例如兴趣),以逗号分隔的兴趣 ID 作为值。例如 user interests A 12,13,15 B 10,11,12,15 C 9,13
我有一个用户表,其中包含一列(比如兴趣),其中以逗号分隔的兴趣 ID 作为值。例如 user interests A 12,13,15 B 10,11,12,15 C 9,1
我是一名优秀的程序员,十分优秀!