mysql - 按随机数量修改 MySQL 行中的十进制值,每行不同

标签 mysql random decimal

我有一个包含 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/

相关文章:

php - MySQL 数据库尝试更新信息但未出现在网站上

php - 带有隐私条件检查的查询中的 mysql 查询

algorithm - 选择幂集的随机元素

java - 随机掷骰子的百分比数学计算不正确

swift - 在 Swift 中将十六进制转换为十进制

c++ - 以二进制模式扫描文件并将十六进制字符解释为 C++ 中的实际数字

PHP/MySQL 子查询返回多于 1 行

php mail onclick on link执行mysql命令

java - 使用java显示随机图片

sql-server - SQL Server 十进制长度 - 可以还是必须?