我有这个数据库称为问题:
NAME | CONTENT
------------
Hello | value1,value2,value3
如何转换值中的内容以将其与另一个查询 IN 子句一起使用。
SELECT *
FROM TABLE
WHERE VALUES IN ( SELECT CONTENT FROM PROBLEM WHERE NAME = 'HELLO');
我不知道子查询有什么问题,但我认为它返回一个字符串,但它不起作用。
SELECT '''' || REPLACE(CONTENT, ',', ''',''') || '''' AS CONTENT_WITH_QUOTES
FROM PROBLEM
WHERE NAME = 'HELLO';
这给了我这个 'value1','value2','value3' 这正是我需要的,但在子选择中不喜欢它!
SELECT *
FROM TABLE
WHERE VALUES IN
(SELECT '''' || REPLACE(CONTENT, ',', ''',''') || '''' AS CONTENT_WITH_QUOTES
FROM PROBLEM WHERE NAME = 'HELLO')
尝试:
SELECT *
FROM TABLE t
INNER JOIN PROBLEM p ON LOCATE(','||t.values||',', ','||content||',') > 0
WHERE p.name='Hello'
基本上,您正在尝试在“,value1,value2,value3,”中查找“,value,”。
我在开头和结尾附加逗号以保证您不会找到 e。 G。值“tomcat”内的“cat”。