En MySQL, ¿cómo uso una variable definida por el usuario en una cláusula donde en la cláusula?

StackOverflow https://stackoverflow.com/questions/7815031

Pregunta

No entiendo por qué esto no funciona. ¿Alguien puede explicar lo que necesito hacer?

SET @my_list = '2,6,8,10,12,13,14,18,19,21';

DELETE FROM my_table WHERE my_table.table_id IN (@my_list);
¿Fue útil?

Solución

Está interpretando @my_list como una sola identificación, por lo que le está pidiendo que elimine de my_table donde su identificación es la cadena "2,6,8,10,12,13,14,18,19,21"

Tu podrías intentar

SET @my_list = '2,6,8,10,12,13,14,18,19,21';
SET @exec = CONCAT('DELETE FROM my_table WHERE my_table.table_id IN (', @my_list ,')');
EXECUTE (@exec);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top