Php 如何从现有mysql表列生成1-99之间的数字?
我有这样的mysql db表:Php 如何从现有mysql表列生成1-99之间的数字?,php,mysql,numbers,Php,Mysql,Numbers,我有这样的mysql db表: id name surname number 1 emil asadi 26 2 anybody anybody 27 我想检查数字列->也就是说,若数字在1-99之间不存在,那个么从1开始生成新的数字。新的数字也应该在1-99之间 如何使用for函数和mysql查询实现这一点?或者你知道其他方法吗?感谢您在adnavce中使用下面的查询,您可以使用单个查询而不是从1开始生成随机数。我认为这无关紧要: SELECT id, name, su
id name surname number
1 emil asadi 26
2 anybody anybody 27
我想检查数字列->也就是说,若数字在1-99之间不存在,那个么从1开始生成新的数字。新的数字也应该在1-99之间
如何使用for函数和mysql查询实现这一点?或者你知道其他方法吗?感谢您在adnavce中使用下面的查询,您可以使用单个查询而不是从1开始生成随机数。我认为这无关紧要:
SELECT id, name, surname,
if(number between 1 and 99 ,number,floor(1 + rand() * 99)) as number
FROM table
让我知道这是否与您想要的相同。您可以使用单个查询生成随机数,而不是使用下面的查询从1开始。我认为这无关紧要:
SELECT id, name, surname,
if(number between 1 and 99 ,number,floor(1 + rand() * 99)) as number
FROM table
让我知道这是否与您想要的相同。也许可以尝试使用此SQL语句来获取您的数字之间的差距。 如果有间隙,可以在激发UPDATE语句的函数中使用结果
SELECT a.number+1 AS start, MIN(b.number) - 1 AS end
FROM database AS a, database AS b
WHERE a.number < b.number
GROUP BY a.number
HAVING start < MIN(b.number)
也许可以尝试使用此SQL语句来获取数字之间的差距。 如果有间隙,可以在激发UPDATE语句的函数中使用结果
SELECT a.number+1 AS start, MIN(b.number) - 1 AS end
FROM database AS a, database AS b
WHERE a.number < b.number
GROUP BY a.number
HAVING start < MIN(b.number)
但这必须在插入时完成?我的意思是:当您添加一行时,您希望将一个数字[1-99]设置为不存在的列编号?如果所有1-99个数字都存在怎么办?但这必须在插入时完成?我的意思是:当您添加一行时,您希望将一个数字[1-99]设置为不存在的列编号?如果所有1-99个数字都存在怎么办?你是说FLOOR1+RAND*99吗?round1+rand*100生成范围为1-101的数字。是。。两者都会产生相同的结果。FLOOR1+RAND*99给出的数字范围为1-99,而round1+RAND*100给出的数字范围为1-101。否。As四舍五入将进行四舍五入,得到值100。兰特*99可以等于98.99。加1=99.99。然后四舍五入得到100。你是说FLOOR1+RAND*99吗?round1+rand*100生成范围为1-101的数字。是。。两者都会产生相同的结果。FLOOR1+RAND*99给出的数字范围为1-99,而round1+RAND*100给出的数字范围为1-101。否。As四舍五入将进行四舍五入,得到值100。兰特*99可以等于98.99。加1=99.99。然后四舍五入得到100。