2010-11-19 73 views
0

我有許多表,其ID列的名稱是不同的,但列名更新保持不變。第一列MySQL更新

例如

Columns: 

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

正如你所看到的,ID列始終是第一,但列名發生變化。而且我想更新UPDATEME列而不管ID列的名稱。

UPDATE `UPDATEME` WHERE `FIRST_COLUMN` = # 

我該如何做到這一點?我知道ORDER BY column_order語法,但我不能在WHERE子句中使用它。

+0

這不是明擺着你的問題是什麼。你不能僅僅動態地使用正確的id列來構建SQL嗎? – 2010-11-19 13:12:32

回答

1

沒有SQL語法來做到這一點。但是您可以訪問數據庫元數據(INFORMATION_SCHEMA)來生成更新語句。

事情是這樣的:

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