Как использовать Mysql rand () дважды?

0

Как и ниже

UPDATE tableA
SET hit_count = hit_count + (SELECT FLOOR(5 + (RAND() * 6))) AS randVAlue, total_hit_count = total_hit_count + randVAlue
WHERE 1

Я хотел бы добавить значение rand, но он должен применяться сразу к двум различным столбцам. Если я использую две функции rand(), она применяет другое значение результата rand.

Вышеприведенная инструкция выводит синтаксическую ошибку. Пожалуйста, дайте мне знать, что является правильным.

Теги:
syntax

2 ответа

2
Лучший ответ

Одно и то же случайное значение для строки ALL

SET @varRan=FLOOR(5 + (RAND() * 6));
UPDATE tableA
SET hit_count = hit_count + @varRan, 
    total_hit_count = total_hit_count + @varRan
WHERE 1;

Различное случайное значение для каждой строки

UPDATE Table1
SET val1 = IFNULL(val1,0) + @varRan:= FLOOR(5 + (RAND() * 6)), 
val2 = IFNULL(val2,0) + @varRan;
  • 0
    Согласно этому коду, все строки обновляются одновременно @varRan. Есть ли другой способ обновить все строки разными случайными значениями?
  • 0
    Попробуйте 2-й запрос @Kabkee
Показать ещё 1 комментарий
2

Вы можете определить переменную mysql и присвоить ей случайное значение. Затем вы можете использовать его так, как можете в своей логике.

SET @randomNumber = RAND();
UPDATE table SET field1 = @randomNumber, field2 = @randomNumber;
  • 0
    Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.

Ещё вопросы

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