我试图建立一个正确的字符串作为参数传递给一个简单的查询。
返回记录的正确查询:
SELECT id_s FROM group_of_id_s
WHERE date IN ('2020-08-01','2020-08-01','2020-08-02','2020-08-03','2020-08-04');
...但如果我通过这个 (''2020-08-01','2020-08-01','2020-08-02','2020-08-03','2020-08-04'' ) 作为参数它不起作用。
我也试图通过这个('2020-08-01,2020-08-01,2020-08-02,2020-08-03,2020-08-04')
...但它也不起作用。
我的想法是通过一个过程把这个字符串作为参数。或许是这样的:
IN parameter TEXT
BEGIN
SET @c = CONCAT('SELECT id_s FROM group_of_id_s
WHERE date IN (', '''' , parameter, '''', ')');
PREPARE stmt from @c;
EXECUTE stmt;
END
任何参考或有用的建议将不胜感激。
编辑:基于来自@nbk 的非常有用的示例并在将其与数组进行比较之前更改日期格式,我设法提出了一个有效的查询,就像一个魅力。您可以在下面看到它的所有荣耀。;O) 来自@nbk 的响应因此被视为解决方案。非常感谢@nbk。
SELECT id_s FROM group_of_id_s
WHERE find_in_set(DATE_FORMAT(`date`, '%Y-%m-%d'), parameter) > 0;