Sql ОБНОВЛЕНИЕ один раз, затем умри - PullRequest
0 голосов
/ 23 ноября 2011

Я хотел бы запрос SQL, который ОБНОВЛЯЕТ один раз, а затем умирает.

Обновление применимо к одной строке (где идентификатор пользователя = x)

Я хотел бы изменить одного из пользователей в положение ВЫКЛ (ВКЛ (только один))

, чтобыбаза данных:

user | monday | tuesday | wednesday | thurs | fri | sat | xmas | easter | etc
1    | off     | hols   |   on      | off   | on  |  x  |  on   | sick  | etc

mysql_query("UPDATE shifts SET ??  WHERE userID  = '".$_SESSION['userID']."' ")or die("Query failed:".mysql_error());

Таким образом, имена столбцов являются переменными, и существует более 100 столбцов

Я, очевидно, хочу избежать изменения всех отключений на включения (я рад изменить первое илипоследний, только не более одного.) (ОБНОВЛЕНИЕ выполняется через PHP, и мое текущее решение состоит в том, чтобы выполнить SELECT и создать массив значений OFF, а затем изменить в PHP перед UDATING - но это требует дополнительных запросов MYSQL ...)

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

Обычный способ - просто создать строку запроса. КОД ПСЕВДО!

qry = "Update Table Set " + NameValuesDelimited + " Where ...."

NameValues ​​- это просто список "Column1 = 0" "Column2 = 2", и разделитель вводит запятые, чтобы дать вам выражение, которое sql поймет, например,

Update Table Set C1 = 0, c2 = 6, c9 = 8 Where KeyName = 44
0 голосов
/ 23 ноября 2011

Просто используйте предложение LIMIT.

UPDATE table SET column='value' WHERE condition='value' LIMIT 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...