我需要做一个对我的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
答案 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%');
我希望这能解决问题。