2010-11-19 14 views
0

Ich habe viele Tabellen, deren Name der ID-Spalten unterschiedlich ist, aber der Spaltenname, der der Aktualisierung unterzogen wird, bleibt unverändert.MySQL UPDATE in der ersten Spalte

Zum Beispiel

Columns: 

fooID | x | y | UPDATEME | t | .. 
barID | a | UPDATEME | b | .. 
bazID | UPDATEME | m | l | .. 

Wie Sie sehen können, ist die ID-Spalte immer an erster Stelle, aber Spaltennamen zu ändern. Und ich möchte UPDATEME Spalte unabhängig vom Namen der ID-Spalten aktualisieren.

UPDATE `UPDATEME` WHERE `FIRST_COLUMN` = # 

Wie kann ich das erreichen? Ich kenne ORDER BY column_order Syntax, aber ich kann dies nicht in WHERE Klausel verwenden.

+0

Es ist nicht klar, was dein Problem ist. Können Sie nicht einfach die SQL mit der richtigen ID-Spalte dynamisch erstellen? –

Antwort

1

Dafür gibt es keine SQL-Syntax. Sie können jedoch auf DB-Metadaten (INFORMATION_SCHEMA) zugreifen, um Ihre Aktualisierungssätze zu generieren.

Etwas wie folgt aus:

select 
    concat(
     'update ', 
     table_name, 
     ' set updateme=1212 where ', 
     column_name, 
     '=12123;' 
) 
    from information_schema.columns 
where ordinal_position = 1; 
Verwandte Themen