2016-05-31 19 views
2

ich diese grundlegenden field01 durch field39 auf Säulen ersetzen ausführen möge, ohne 39 Abfragen zu erfordern:gleiche Zeichen in mehreren Spalten in MySQL

UPDATE leads 
    SET field01 = REPLACE(field01, ' ', '+') 
    WHERE field40 = 'in_process'; 

Wenn es einfacher ist, mit PHP zu laufen, das wäre in Ordnung.

Antwort

0

Sie können mehrere Spalten innerhalb einer einzigen Abfrage gesetzt:

UPDATE leads 
    SET field01 = REPLACE(field01, ' ', '+'), 
     field02 = REPLACE(field02, ' ', '+'), 
     . . . 
     field39 = REPLACE(field39, ' ', '+') 
    WHERE field40 = 'in_process'; 

den Code Typing aus umständlich ist, können Sie den Code generieren Verwendung einer Tabelle.

Ich sollte nicht, dass Dutzende von Spalten, die ähnliche Informationen enthalten, oft ein Zeichen für schlechte Datenbank-Design ist. Es besteht eine gute Chance, dass Sie eine Junction-Tabelle mit einer Zeile pro Leitungs- und Feldwert benötigen.

+0

Vielen Dank für die offensichtliche zeitsparende Lösung. (Ich habe mich selbst geärgert, dass ich nicht gedacht hätte, das zu tun.) Ich habe jedoch auf eine Art von LOOP- oder PHP-Code gehofft, der den gesamten Prozess auf einmal durchlaufen könnte. Hinweis: diese sind nicht ähnliche Spalten. Sie haben jedoch vom Benutzer eingegebene "Leerzeichen", die vor dem Posten auf einem anderen Server zu einem Pluszeichen (+) werden müssen. – PhoenixTech

Verwandte Themen