我有包含逗号分隔字符串的表,我想对'name'列执行类似查询,但是'name'是逗号分隔,因此它不会轻易检索数据,因此我使用replace来消除逗号,而不是对别名执行类似查询列,但不起作用。是否有任何方法可以执行类似查询的逗号分隔字符串
表格:
id name
i school,education
mysql查询:
SELECT id,name, lower((REPLACE(name, ',', ''))) as test FROM `list`
where test like '%education%'
避免像现在一样将CSV数据存储到单个表列中。话虽如此,这是一种可能的解决方法:
SELECT id, name
FROM list
WHERE CONCAT(',', LOWER(name), ',') LIKE '%,education,%';
上述技巧背后的想法是构建一个看起来像如下的CSVname
字符串:
,A,B,C,D,
也就是说,每个单个名称值始终在两侧都被逗号分隔。然后,我们只需要检查此CSV字符串中是否存在,somename,
。