我的表格中id_categoria
字段具有逗号分隔值,例如1,2,3,4,64,31,12,14
,因为记录可以属于多个类别。如果我想选择属于类别1
的记录,我必须运行以下SQL查询
SELECT *
FROM cme_notizie
WHERE id_categoria LIKE '1%'
ORDER BY `id` ASC
然后从id_categoria
中选择1
完全id_categoria
的记录集中的所有记录。我们假设值1
不存在,但列值如12,15,120 ......仍然包含1
。
有一种方法只需要1?不带衍生物或其他?
答案 0 :(得分:1)
正如评论所说,你可能不应该这样做。相反,您应该有另一个表,每个类别有一行。但如果您决定使用这种劣质解决方案,您可以执行以下操作:
SELECT *
FROM cme_notizie
WHERE CONCAT(',', id_categoria, ',') LIKE '%,1,%'
ORDER BY id ASC