id name surname number
1 emil asadi 26
2 anybody anybody 27
我想检查数字列 - >即如果1-99之间不存在数字,则从1开始生成新数字。新数字也应该在1-99之间。
如何使用 进行 功能和mysql查询?或者你知道其他任何方式吗?感谢adnavce
答案 0 :(得分:4)
您可以使用以下查询使用不从1开始的单个查询生成随机数。而且我认为这不重要:
SELECT id, name, surname,
if(number between 1 and 99 ,number,floor(1 + rand() * 99)) as number
FROM table
如果您想要的话,请告诉我。
答案 1 :(得分:0)
也许尝试这个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)