2014-02-05 3 views
0

Чтобы обновить таблицу, мы используем это:Обновление столбца на основе его значения

UPDATE `table` SET column = value WHERE column = value 

Есть ли способ, чтобы обновить столбец по его стоимости? Например:

Таблица «test» имеет 2 столбца, называемые «один» и «два».

Я установил их: «один» в 10 и «два» на 20, и я хочу обновить columm, у которого есть значение 10, это переменная, и я не могу знать, в какой именно колонке это ,

Благодаря

+1

Такая проблема иногда свидетельствует о плохом дизайне, то есть отсутствии нормализации – Strawberry

ответ

0

Вы бы запрос таблицы первой:

select * from myTable where col1 = 10 or col2 = 10

Затем вам нужно код на стороне сервера (например, PHP, Ruby, Python и т.д.), чтобы определить, какой столбец имеет необходимое значение, и вы можете создать новый запрос на обновление, основываясь на том, что:

update myTable set col1 = 20

Как когда-либо, я не могу думать о сценарии, где это эффективный способ управления данными. Возможно, вам захочется пересмотреть структуру базы данных.

0

Ищите IF синтаксис. Возможно, он может использоваться в присваивании внутри запроса UPDATE.

0

Вы можете сделать 2 UPDATE, по одному для каждого столбца.

UPDATE test SET one = ... WHERE one = 10; 
UPDATE test SET two = ... WHERE two = 10; 
Смежные вопросы