DB是MySQL。有一个表的结构如下所示:
select * from table1
id column1
-- --------
1 3,4,5
2 3,7,8以及不能正常工作的sql:
SELECT * FROM table1 WHERE 3 in (column1)我知道这张桌子的结构不正确。但它是在我之前完成的。你能用这种方式给我推荐什么?或者将执行此sql的含义的东西?谢谢。
发布于 2012-01-21 17:32:26
请对您的表进行规范化。阅读《为什么选择storing comma separated values in a db column is really bad》。
如果不允许,请使用函数:
SELECT *
FROM table1
WHERE FIND_IN_SET(3, column1)发布于 2012-01-21 17:30:55
看起来你想要
SELECT * FROM table1 WHERE column1 LIKE "%,3,%" OR column1 LIKE "3,%" OR column1 LIKE "%,3"发布于 2012-01-21 17:33:37
使用find_in_set它返回值在逗号分隔值字符串中的位置
SELECT *
FROM table1
WHERE FIND_IN_SET(3, column1)https://stackoverflow.com/questions/8951952
复制相似问题