使用别名列上的like子句搜索值

问题描述 投票:0回答:1

我有包含逗号分隔字符串的表,我想对'name'列执行类似查询,但是'name'是逗号分隔,因此它不会轻易检索数据,因此我使用replace来消除逗号,而不是对别名执行类似查询列,但不起作用。是否有任何方法可以执行类似查询的逗号分隔字符串

表格:

id        name

i         school,education 

mysql查询:

    SELECT id,name, lower((REPLACE(name, ',', ''))) as test FROM `list`
    where test like '%education%'
mysql alias
1个回答
0
投票
您应该认真

避免像现在一样将CSV数据存储到单个表列中。话虽如此,这是一种可能的解决方法:

SELECT id, name FROM list WHERE CONCAT(',', LOWER(name), ',') LIKE '%,education,%';
上述技巧背后的想法是构建一个看起来像如下的CSV name字符串:

,A,B,C,D,

也就是说,每个单个名称值始终在两侧都被逗号分隔。然后,我们只需要检查此CSV字符串中是否存在,somename,
© www.soinside.com 2019 - 2024. All rights reserved.