我正在为mysql编写一个存储过程。我正在将examplep-localhost与mariadb一起使用。
存储过程接收一个整数ID,并根据数据库中的ID查找字符串。此字符串包含一个用逗号分隔的数字列表。
我需要在SQL查询中为IN子句使用这个数字字符串。
CREATE PROCEDURE Test(IN id INT)
BEGIN
DECLARE clist VARCHAR(255);
SELECT clists INTO clist
FROM camp
WHERE cid = id ;
现在是clist,一个varchar变量包含一个字符串中的值列表,如4,6,8。
SELECT DISTINCT email
FROM table
WHERE ( col1 IN (clist) OR col2 IN (clist)
因此,在mysql中,查询变成这样,并且只获取一个ID 4。
SELECT DISTINCT email
FROM table
WHERE ( col1 IN ('4,6,8') OR col2 IN ('4,6,8')
我希望它成为
SELECT DISTINCT email
FROM table
WHERE ( col1 IN (4,6,8) OR col2 IN (4,6,8)
我的问题是-如何删除字符串中的单引号?
谢谢。
使用FIND_IN_SET 可能是最简单(最糟糕(的
WHERE FIND_IN_SET(col1, clist) > 0 OR FIND_IN_SET(col2, clist) > 0