2012-12-12 4 views
-4

Voici mes requêtes sql qui mettent à jour des valeurs dans la même table. Je veux intégrer ces deux requêtes dans un et je n'ai pas pu faire cela. Veuillez me faire savoir comment je peux le faire, Merci:Une requête de mise à jour pour toutes les mises à jour

$SQL1 = "UPDATE table1 SET gender='$sex', dob = '$dob', reg_date ='$reg_date' 
    WHERE id = '$id'" 

$SQL2 = "UPDATE table1 a CROSS JOIN lookup b 
SET a.ADRES = REPLACE(a.ADRES, b.`WRONG`, b.`RIGHT`) 
WHERE a.ADRES LIKE CONCAT('%', b.`WRONG`, '%')" 
+1

En quoi ces tables sont-elles liées? –

+0

http://sqlfiddle.com/#!2/975c6/1 ceci est mon violon sql –

+0

Certaines colonnes de la table sont mises à jour selon la table de recherche que j'ai créée dans le violon sql mentionné ci-dessus, puis-je effectuer quelque chose comme si d'autre dans mettre à jour? –

Répondre

1
UPDATE table1 a CROSS JOIN lookup b 
SET a.ADRES = REPLACE(a.ADRES, b.`WRONG`, b.`RIGHT`), 
     gender='$sex', 
     dob = '$dob', 
     reg_date ='$reg_date' 
WHERE a.ADRES LIKE CONCAT('%', b.`WRONG`, '%') OR 
     id = '$id' 

la requête est vulnérable SQL Injection, s'il vous plaît voir l'article ci-dessous pour lear comment protéger,

+0

ok si je fais les requêtes séparément cela va-t-il affecter la vitesse comme comparer à une requête pour tous ?? –

+0

Un léger problème rencontré avec votre ancienne solution veuillez jeter un oeil à http://sqlfiddle.com/#!2/14285/1 et voir le numéro de maison de james ne convertit pas selon la bonne valeur –

+0

Cela va définir le sexe, dob, et reg_date sur les lignes qui devraient seulement définir adres, et vice versa. – Barmar

Questions connexes