第一列的MySQL UPDATE

时间:2010-11-19 13:09:49

标签: sql mysql

我有很多表,其ID列的名称不同,但更新的列名保持不变。

例如

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子句中使用它。

1 个答案:

答案 0 :(得分:1)

没有SQL语法可以做到这一点。但您可以访问数据库元数据(INFORMATION_SCHEMA)来生成更新语句。

这样的事情:

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