SQL Update Tuples с возможностью выбора

0

обновление для проверки содержания = "Идеальное место для еды" или "WOW" WHERE rating = 5.0;

Как использовать или устанавливать что-то случайное среди вариантов?

Это ошибка: 1292 Усеченное неправильное значение INTEGER: "Идеальное место для еды" 1292 Усеченное неправильное значение INTEGER: "WOW"

  • 0
    Относительно источника сообщения об ошибке: OR - логический оператор, и MySQL пытается преобразовать и "Perfect place to eat" и "WOW" в логическое значение. Конечно, это невозможно, но запрос не терпит неудачу, аналогично cast('WOW' as INTEGER) который просто возвращает 0 (вместо сбоя запроса, как в большинстве (всех?) СУБД, кроме MySQL).
Теги:
mysql-workbench
sql-update

1 ответ

0

Вы можете использовать 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;
  • 0
    Поэтому, если бы у меня было несколько строковых операторов, я бы сделал: обновить набор проверок содержимого = (случай, когда rand () <0.5, тогда случай 'Perfect place to eat', когда rand () <0.5, затем 'Amazing', в противном случае 'WOW' end) где рейтинг = 5,0;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню