Estou tentando colocar uma string correta para passar como parâmetro para uma consulta simples.
Consulta correta que retorna registros:
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');
...mas se eu passar isso (''2020-08-01','2020-08-01','2020-08-02','2020-08-03','2020-08-04'' ) como parâmetro não funciona.
Eu também tentei passar isso ('2020-08-01,2020-08-01,2020-08-02,2020-08-03,2020-08-04')
... mas também não funciona.
Minha ideia é colocar essa string como parâmetro através de um procedimento. Talvez assim:
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
qualquer referência ou conselho útil seria apreciado.
EDIT: Com base em um exemplo muito útil de @nbk e alterando o formato de data antes de compará-lo com uma matriz, consegui colocar uma consulta válida que funciona como um encanto. Você pode vê-lo abaixo em toda a sua glória. ;O) A resposta de @nbk é, portanto, considerada como solução. Muito obrigado @nbk.
SELECT id_s FROM group_of_id_s
WHERE find_in_set(DATE_FORMAT(`date`, '%Y-%m-%d'), parameter) > 0;
Usar find_in_Set
Esquema (MySQL v5.7)
Consulta nº 1
Ver no DB Fiddle