обновление для проверки содержания = "Идеальное место для еды" или "WOW" WHERE rating = 5.0;
Как использовать или устанавливать что-то случайное среди вариантов?
Это ошибка: 1292 Усеченное неправильное значение INTEGER: "Идеальное место для еды" 1292 Усеченное неправильное значение INTEGER: "WOW"
Вы можете использовать rand()
:
update review
set content = (case when rand() < 0.5 then 'Perfect place to eat'
else 'WOW'
end)
where rating = 5.0;
Если у вас несколько строк, вы можете сделать следующее:
update review
set content = (case floor(rand() * 3)
when 0 then 'string1'
when 1 then 'string2'
when 2 then 'string3'
end)
where rating = 5.0;
OR
- логический оператор, и MySQL пытается преобразовать и"Perfect place to eat"
и"WOW"
в логическое значение. Конечно, это невозможно, но запрос не терпит неудачу, аналогичноcast('WOW' as INTEGER)
который просто возвращает 0 (вместо сбоя запроса, как в большинстве (всех?) СУБД, кроме MySQL).