这个问题在这里已经有答案了:
在数据库列中存储分隔列表真的那么糟糕吗(10个答案)
两年前关门了。
表名:学生:
id name topics
--- ---- --------
1 Test1 1,2,10,15,25
2 Test2 5,21,11,18,13
3 Test3 2,1,16,25,10
4 Test4 2
我的问题:
select * from student where topics like '%2%'
输出:全部4条记录。预期:但我只需要获得3条记录,因为id 1,3,4 topics列包含2条。第二条记录不包含2。
3条答案
按热度按时间bejyjqdl1#
像这样的东西可能有用吗?
很遗憾,你不能用在喜欢。
yx2lnoni2#
第二条记录包含2。你需要用这样的东西。
第一个检查topics是否为2。第二个如果2是第一个,但是还有其他的。第三个检查2是否是最后一个,但前面有一些数字,第四个检查2是否介于两者之间
yzuktlbb3#
您可以使用函数find\ in\ u set: