J'essaie d'insérer plusieurs lignes dont les valeurs ne sont pas tirées d'une table existante mais fournies de l'extérieur avec une condition where en utilisant INSERT ... SELECT ... WHERE
.INSERT SELECT WHERE insérer plusieurs lignes à partir de constantes
La requête suivante ne fonctionne pas:
mysql> insert into `my_table` SELECT 1 as a, 2 as b, 3 as c from dual UNION ALL SELECT 4 , 5 , 6 from dual UNION ALL SELECT 7 , 8 , 9 from dual where 1>2 ;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from my_table;
+---+---+------+
| a | b | c |
+---+---+------+
| 1 | 2 | 3 |
| 4 | 5 | 6 |
+---+---+------+
2 rows in set (0.00 sec)
Je veux interroger à ne pas insérer une ligne parce que la condition where
est fausse. Mais, la clause where
est appliquée uniquement pour la dernière select
et la première 2 select
n'est pas affectée par la clause where
.
Comment puis-je le corriger?
vous pouvez essayer avec select * from (toute votre requête) où 1> 2 –