SQL条件,搜索子字符串并返回' true'或者' false'

时间:2017-07-04 05:16:09

标签: mysql sql csv substring

我需要做一个对我的SQL句柄负责的映射。

我需要知道表格单元格中包含的CSV中是否存在子字符串。如果是这样,我需要它来返回字符串' true'别的'假'

此查询的作用是返回我需要检查的CSV:

select table.value from table where table.user_id = 1 and table.keyname = 'email_list'

我试图将SQL包含在这样的条件中:

IF ( (select table.value from table where table.user_id = 1 and 
table.keyname = 'email_list') LIKE '%substring%') THEN 'true' ELSE 'false'

但到目前为止还没有运气。这实际上是一个更大的查询的一个组成部分,它将不同的元素从一个表映射到另一个表,所以我真的需要它只返回一个真正的'字符串。或者' false'让它适当地运作。

表结构如下所示:

User   KEYNAME        value (in the form of CSV)
1       email_list   george@gmail.com, george@yahoo.com
2       email_list   
3       email_list   kiley@yahoo.com
4       email_list   kim@gmail.com, kimmy@hotmail.com, wondergirl@yahoo.com   

2 个答案:

答案 0 :(得分:2)

在select子句中使用 CASE 语句可以解决您的问题。

如下所示

select case when table.value LIKE '%substring%' 
        then 'TRUE' else 'FALSE' end as "Result" 
from table where table.user_id = 1 and 
table.keyname = 'email_list'

答案 1 :(得分:0)

SELECT table.value FROM table WHERE EXISTS (select table.value FROM table WHERE table.user_id = 1 AND table.keyname = 'email_list' AND table.value LIKE '%substring%');

我希望这能解决问题。