我有一个包含 100 行的表格,每行都有一个“CurrentPrice”小数 (10,2) 字段。
我想做的是从每个 CurrentPrice 中减去一定数量,并且每行该数量随机不同。
随机数量将限制在当前价格值的 1% 到 5% 之间,但可以包含这两个百分比之间的任何小数。
谢谢。
最佳答案
您可以使用 RAND() 函数使用 UPDATE。每次调用该函数时都会返回一个新的随机数,并且会为 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 |
+----+--------------+
关于mysql - 按随机数量修改 MySQL 行中的十进制值,每行不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26656230/