給定一個數字,我怎樣才能在MySql函數內循環基於該數字的一組數字?MySql在函數內部使用while循環
爲了得到一個更清晰的圖片,請參閱我的問題,我問了這樣的事情可以在PHP中完成。 Question here.
我會做select myfunction(thenumber)
。基於這個數字,我得到了循環。
截至目前,
If thenumber = 1 then loop backward thru 1,4,7 only
If thenumber = 2 then loop thru 3
If thenumber = 3 then loop thru 10
這是我一直在擺弄與功能。
CREATE DEFINER=`root`@`localhost` FUNCTION `whileloop`(`danum` VARCHAR(2050))
RETURNS varchar(1500)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE x INT;
DECLARE str VARCHAR(255);
SET x = danum;
SET str = '';
#If x = 1, while = 1, 4, 7////////
WHILE x >= 1 DO //I'm stuck here
SET str = CONCAT(str,x,',');
SET x = x - 1;
END WHILE;
RETURN str;
END
我該怎麼做一個MySql函數,我做了什麼php。在PHP中,我們將東西存儲在一個數組中。我們如何在這裏做到這一點?
編輯
結果
我試圖在年底走出的鏈接。
So if `thenumber = 1`
`<a href=foo.php?id=1> <a href=foo.php?id=4> <a href=foo.php?id=7>` //3 Links Output in a single row
If `thenumber = 2`
`<a href=foo.php?id=3>` //Same as above. Output in a single row.
If `thenumber = 10`
`<a href=foo.php?id=10>`
MySQL的函數只返回一個標量值。因此,你無法完成你在php中完成的任務。更清楚地解釋你期望從你的功能中獲得什麼?如果你傳遞1作爲參數,你是否僅僅期望返回一個字符串'1,4,7'? – peterm
不,我希望while循環遍歷數字1,4,7。結果是這樣的鏈接(例如1):'' – Norman
'您想要這些鏈接作爲一個varchar值,或者您希望它們是行? – peterm