我有许多表,它们的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子句中使用它。

最佳答案

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

像这样:

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

关于sql - 第一栏中的MySQL UPDATE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4225298/

10-12 18:33