mis à jour d'un champ de table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mis à jour d'un champ de table

par Hubert Roksor » 21 mai 2007, 14:17

Comme je le disais dans ton précédent sujet, crée une colonne qui sera identique dans les deux tables. C'est comme ça que les jointures doivent se faire, pas avec des trucs plus-ou-moins-équivalents-et-si-on-force-un-peu-ça-rentre.

par martial » 21 mai 2007, 13:53

Si tu as une autre solution, je suis preneur!

par Hubert Roksor » 19 mai 2007, 18:00

Je ne vais pas m'étendre sur le sujet car il a été abordé maintes fois, mais j'espère que tu es conscient que ton approche force MySQL à lire l'intégralité des deux tables et les vérouille en lecture et en écriture pendant toute l'opération. Donc j'espère que ce n'est pas une requête que tu exécutes souvent ou sur de grandes tables...

par martial » 19 mai 2007, 17:05

J'ai trouvé la solution!

Code : Tout sélectionner

UPDATE T_1 ,T_2 SET champ2=id_champ_t_1 WHERE RIGHT (t_1.champ3, 4) = RIGHT( t_2.%champ4, 4)
Mysql met à jour les champs quand les quatres derniers caractéres sont identiques!

A bientôt

par Sékiltoyai » 18 mai 2007, 01:00

Vois avec la fonction INSTR

mis à jour d'un champ de table

par martial » 17 mai 2007, 18:13

bonjour à tous

je posséde deux tables dans une base de données structurées comme suit:
  • T_1
    id_champ_t_1 (clé primaire)
    champ2 (mis à jour par le par le id_champ_t_2 de la table 2)
    champ3
    champ4

    T_2
    id_champ_t_2 (clé primaire)
    champ2
    champ3
avec la commande SQL suivante je met à jour ma table 1 (T_1)

Code : Tout sélectionner

UPDATE T_1 ,T_2 SET champ2=id_champ_t_2 where t_1.champ3=t_2.champ4
cela fonctionne trés bien et les informations de tables se lient comme il faut quand les contenus des champs sont parfaitement identiques. En revanche exist-il une possibilité de mettre à jour le champ2 de la table 1 quand seulement les derniers caractéres sont identiques
exemple:t_1champ3=ABCD1234
t_2champ4=1234
J'ai bien essayé le code suivant

Code : Tout sélectionner

UPDATE T_1 ,T_2 SET champ2=id_champ_t_1 WHERE t_1.champ3 LIKE t_2.%champ4
mais cela ne fonctionne pas!