Vous ne pouvez pas (autant que je sache) stocker plusieurs valeurs dans une variable définie par l'utilisateur MySQL. Ce que vous avez fait est de créer une chaîne qui contient:
'20100630', '20100701'
qui ne sont pas deux valeurs distinctes, mais une seule valeur de chaîne, comme cela est une seule valeur de chaîne:
SET @a := "It's a single string, and that's the problem";
Vous devez utilisez deux variables distinctes, ou préparez une instruction, comme ceci:
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;
Mais c'est un peu compliqué. Pourquoi avez-vous besoin d'utiliser des variables?
SET @a: = « '20100630' , '20100701' "doit être SET @a: =" 20100630, 20100701 ". Vous avez ajouté des guillemets pour les valeurs entières, ce qui l'a obligé à ne renvoyer aucune ligne. – Akash