|
|
|
| Пишу такой запрос:
UPDATE users SET views=views+1,
full_rating = CASE
WHEN id='$Na' THEN '$Ra'
WHEN id='$Nb' THEN '$Rb' END
WHERE id IN ('$Na', '$Nb')
|
Он трансформируется в
UPDATE users SET views=views+1, full_rating = CASE WHEN id='30' THEN '0' WHEN id='37' THEN '1675' END WHERE id IN ('30', '37')
|
Но в базе данных ничего не меняется... Если руками вбить этот запрос через phpMyAdmin, меняется только 1 строка и только 1 столбец | |
|
|
|
|
|
|
|
для: Sturmvogel
(20.01.2011 в 12:29)
| | как отсюда можно понять, что должно меняться, а что не должно? | |
|
|
|
|
|
|
|
для: Trianon
(20.01.2011 в 12:39)
| | Изначально все поля инициализированы нулями....
Соответственно, поменяться значения должны в ненулевых полях. Как минимум должны увеличиться views на единицу в выбранных строках... | |
|
|
|
|
|
|
|
для: Sturmvogel
(20.01.2011 в 12:42)
| | >Изначально все поля инициализированы нулями....
>Соответственно, поменяться значения должны в ненулевых полях.
Это с какой такой радости? Единственное поле, которое меняет этот запрос - поле views.
Да и оно изменится лишь в том случае, если было определено хотя бы как 0.
Если поле было NULL - оно не изменится. NULL означает "неизвестно".
"неизвестно"+1 - точно также неизвестно.
>Как минимум должны увеличиться views на единицу в выбранных строках...
Вот именно. В выбранных строках. Дампа нет. Есть ли у Вас в таблице вообще выбираемые строки, никому неизвестно.
Давайте дамп (хотя бы фрагмент, если сильно велик) - тогда можно будет что-то говорить. | |
|
|
|
|
 1.3 Кб |
|
|
для: Trianon
(20.01.2011 в 12:48)
| | Вот файл экспорта данной таблицы
PS:
>> Единственное поле, которое меняет этот запрос - поле views.
а "равно" в full_rating=... разве не означает, что значение этого поля должно быть установлено? | |
|
|
|
|
|
|
|
для: Sturmvogel
(20.01.2011 в 12:54)
| | да. >Вот файл экспорта данной таблицы
>а "равно" в full_rating=... разве не означает, что значение этого поля должно быть установлено?
да, конечно, full_rating тоже.
Судя по структуре, вы пытаетесь присвоить полю значения несвойственного ему типа.
(Да и при сравнении тоже мешаете типы)
Поля у Вас целочисленные, а значения Вы присваиваете строковые. | |
|
|
|
|
|
|
|
для: Trianon
(20.01.2011 в 13:00)
| | Кавычки убрал на всякий случай, но ошибка была более глупой и появилась по невнимательности...
Спасибо за помощь. | |
|
|
|