2010-11-19 3 views
0

У меня есть много таблиц, имена их идентификаторов которых различны, но имя столбца, подвергнутое обновлению, остается таким же.MySQL UPDATE в первом столбце

Например

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

Это не очевидно, что ваша проблема. Не можете ли вы просто построить SQL с правильным столбцом id динамически? –

ответ

1

Синтаксиса SQL для этого не существует. Но вы можете получить доступ к метаданным БД (INFORMATION_SCHEMA), чтобы генерировать предложения по обновлению.

Что-то вроде этого:

select 
    concat(
     'update ', 
     table_name, 
     ' set updateme=1212 where ', 
     column_name, 
     '=12123;' 
) 
    from information_schema.columns 
where ordinal_position = 1; 
Смежные вопросы