我有這樣的MySQL數據庫表:如何從現有的mysql表列中生成1-99之間的數字?
id name surname number
1 emil asadi 26
2 anybody anybody 27
我要檢查數列 - >那就是如果1-99之間不存在號碼,然後生成的1.New數開始新的號碼也應該是在1-99之間。
我怎麼能這樣做爲函數和mysql的查詢?或者你有其他方式嗎?謝謝大家
我有這樣的MySQL數據庫表:如何從現有的mysql表列中生成1-99之間的數字?
id name surname number
1 emil asadi 26
2 anybody anybody 27
我要檢查數列 - >那就是如果1-99之間不存在號碼,然後生成的1.New數開始新的號碼也應該是在1-99之間。
我怎麼能這樣做爲函數和mysql的查詢?或者你有其他方式嗎?謝謝大家
您可以使用單個查詢生成隨機數,而不是從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)
但是這必須在插入時完成?我的意思是:當你添加一行你想設置一個數字[1-99]到不存在的列號?如果所有的1-99號碼都存在? – kappa 2012-03-28 09:17:39