У мене є таблиця з 100 рядків, кожна з десятковим полем "CurrentPrice" (10,2).
Що я хочу зробити, це відняти певну суму з кожної CurrentPrice, і ця сума буде випадковим чином різною для кожного рядка.
Випадкова сума буде обмежена між 1% і 5% від вартості Поточної ціни, але може складатися з будь-якого десяткового числа між цими двома відсотками.
Дякую.
Відповіді:
1 для відповіді № 1UPDATE можна використовувати за допомогою функції 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 |
+----+--------------+