2015-11-03 2 views
2

У меня есть десять столбцов с именем image1, image2 ... image10, я хочу обновить значение одного столбца до нового значения, но он должен обновлять только один столбец, который является равное значению I.MySQL - установите, какой столбец равен значению

Например, переданное значение равно 1, и я хочу изменить его на строку, такую ​​как «C:/folder/subfolder».

Я думал, есть ли какой-либо оператор if, если «image1 = 1 set image1 =« C:/folder/subfolder »else if image2 = 1 set image2 =" C:/folder/subfolder "и т. Д.

+0

Во-первых, прочтите [это] (http://dev.mysql.com/doc/refman/5.7/en/update.html) и, возможно, побродить [здесь] (Http: //dev.mysql .com/DOC/RefMan/5.7/ен/извлечения-data.html). – Kenney

+0

В хранимой процедуре, да. – Shadow

+1

Аналогичный вопрос был найден [здесь] (http://stackoverflow.com/questions/14893355/mysql-update-a-field-only-if-condition-is-met) – Alderin

ответ

1

вы может использовать IF express ион. Если он соответствует предоставленному значению, вы возвращаете новое значение, иначе вы возвращаете старое значение (поэтому оно не влияет на этот столбец).

UPDATE tableName 
    SET image1 = IF(image1 = '1', 'C:/folder/subfolder', image1), 
     image2 = IF(image2 = '1', 'C:/folder/subfolder', image2), 
     image3 = IF(image3 = '1', 'C:/folder/subfolder', image3), 
     ... 
WHERE '1' IN (image1, image2, image3, ...) 
0

ГДЕ положение может быть то, что вам нужно в вашем SQL-то вроде:..

UPDATE images SET image1="C:/folder/subfolder" WHERE image1="1"; 

может быть не полный ответ, но я думал, что это может помочь на правильном пути

+0

Вам нужно будет повторить этот оператор для каждый колонка. – Barmar

Смежные вопросы