Je suis en train de m'arracher les cheveux sur une requete qui fonctionnait tres bien sur mon ancien serveur (MySQL 4.1.11) et qui plante sur le nouveau (MySQL 4.0.25)!
Voici la requete en question :
CODE
SELECT CMD.id, `id_client` , `date_paiement` , `date_expedition` , `reference` , `prix` , `fr_port` , `moyen_paiement` , `numero_collissimo` , `status` , `adr_nom` , `adr_prenom` , `adr_ad1` , `adr_cp` , `adr_ville` , `adr_pays` , `OK` , CMD.comment, `mail` , `produit`
FROM `commande_tb` CMD, `client_tb` CLI
WHERE `reference` != ''
AND CMD.id
IN (
SELECT `id`
FROM `commande_tb`
WHERE `id` = '-1'
OR `id` = '3905'
OR `id` = '3918'
OR `id` = '3919'
OR `id` = '3934'
OR `id` = '3953'
OR `id` = '3931'
OR `id` = '3928'
OR `id` = '3926'
OR `id` = '3946'
OR `id` = '3935'
OR `id` = '3959'
OR `id` = '3988'
OR `id` = '3974'
OR `id` = '3903'
OR `id` = '3672'
)
AND CMD.id_client = CLI.id
ORDER BY `date_achat` ASC
FROM `commande_tb` CMD, `client_tb` CLI
WHERE `reference` != ''
AND CMD.id
IN (
SELECT `id`
FROM `commande_tb`
WHERE `id` = '-1'
OR `id` = '3905'
OR `id` = '3918'
OR `id` = '3919'
OR `id` = '3934'
OR `id` = '3953'
OR `id` = '3931'
OR `id` = '3928'
OR `id` = '3926'
OR `id` = '3946'
OR `id` = '3935'
OR `id` = '3959'
OR `id` = '3988'
OR `id` = '3974'
OR `id` = '3903'
OR `id` = '3672'
)
AND CMD.id_client = CLI.id
ORDER BY `date_achat` ASC
et l'erreur :
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `id` FROM `commande_tb` WHERE `id` = '-1' OR `id` = '
Quels sont les changements entre les deux versions de mysql qui provoquent ce genre d'erreur ???