/ / Змінити десяткове значення в рядку MySQL випадковою кількістю, різними в рядку - mysql, random, decimal

Змінити десяткове значення в рядку MySQL випадковою сумою, відмінною в рядку - mysql, random, decimal

У мене є таблиця з 100 рядків, кожна з десятковим полем "CurrentPrice" (10,2).

Що я хочу зробити, це відняти певну суму з кожної CurrentPrice, і ця сума буде випадковим чином різною для кожного рядка.

Випадкова сума буде обмежена між 1% і 5% від вартості Поточної ціни, але може складатися з будь-якого десяткового числа між цими двома відсотками.

Дякую.

Відповіді:

1 для відповіді № 1

UPDATE можна використовувати за допомогою функції RAND (). Нове випадкове число повертається при кожному виклику функції, і функція викликається один раз для кожного рядка, відповідного UPDATE. Таким чином, ви отримуєте різну випадкову кількість кожного разу.

mysql> CREATE TABLE Prices (id SERIAL PRIMARY KEY, CurrentPrice NUMERIC(9,2));

mysql> INSERT INTO Prices (CurrentPrice) VALUES (10), (10), (10);

mysql> SELECT * FROM Prices;
+----+--------------+
| id | CurrentPrice |
+----+--------------+
|  4 |        10.00 |
| 14 |        10.00 |
| 24 |        10.00 |
+----+--------------+

mysql> UPDATE Prices SET CurrentPrice = CurrentPrice * (0.99 - RAND()/25);
Query OK, 3 rows affected, 3 warnings (0.01 sec)
Rows matched: 3  Changed: 3  Warnings: 3

mysql> SELECT * FROM Prices;
+----+--------------+
| id | CurrentPrice |
+----+--------------+
|  4 |         9.95 |
| 14 |         9.52 |
| 24 |         9.73 |
+----+--------------+