No puede (hasta donde yo sepa) almacenar valores múltiples en una variable definida por el usuario de MySQL. Lo que han hecho es crear una cadena que contiene:
'20100630', '20100701'
Eso es no dos valores diferentes, pero una sola cadena de valor, así como este es un único valor de cadena:
SET @a := "It's a single string, and that's the problem";
Es necesario utilizar dos variables independientes, o preparar una declaración, como esto:
SET @a := "20100630";
SET @b := "20100701";
SET @sql = CONCAT(
'SELECT * FROM wordbase WHERE verified IN (',
@a,
',',
@b,
')'
);
SELECT @sql;
+--------------------------------------------------------------+
| @sql |
+--------------------------------------------------------------+
| SELECT * FROM wordbase WHERE verified IN (20100630,20100701) |
+--------------------------------------------------------------+
PREPARE stmt FROM @sql;
EXECUTE stmt;
Pero eso es un poco desordenado. ¿Por qué necesitas usar variables?
SET: = " '20100630' , '20100701' "debe ser SET @a: =" 20100630, 20100701 ". Había agregado comillas para valores enteros, lo que provocó que no devolviera filas – Akash