要解決你的問題,我們有語言的2種選擇:
SQLFIDDLE:Demo
步驟:
的字符串
此代碼將讓你這樣的:
@next_rank @str_rank
2 50,40,20,20,15,10
讓我們的樂趣開始(PBM出發 - 卡帕):沒有在任何MYSQL爆炸()函數。
獲取最佳比例,我們可以使用本機的功能做的是:
但我們只'40'
- >讓我們找到/創建一個函數之間+1和-1位置提取的字符串(大到阿爾曼P.)
CREATE FUNCTION SPLIT_STRING(str VARCHAR(255), delim VARCHAR(12), pos INT)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str, delim, pos),
LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1),
delim, '');
。 SELECT SPLIT_STRING(@str_rank, ',', @next_rank) into @next_percentage;
這將存儲在'40'
@next_percentage
結果:(終於)
SELECT *, @next_rank as rank
FROM goal_implement
WHERE percent = @next_percentage;
OUTPUT:
id percent rank
4 40 2
PHP版本:
$Array_test
應該是您的查詢返回的數組
<?php
$array_test = array(array(6,20,3), array(5,50,1), array(4,40,2),
array(3,20,3), array(2,15,5), array(1,10,6));
$next_rank = $array_test[0][2] - 1;
foreach($array_test as $row)
if($row[2] == $next_rank)
{
print "<pre>";
print_r($row);
print "</pre>";
}
?>
輸出:
Array
(
[0] => 4
[1] => 40
[2] => 2
)
來源:功能你用什麼做 Stackoverflow : Equivalent of explode
查詢? Mysqli還是PDO? – Falt4rm
#Falt4rm 47 - mysql sir – Bee
如果我理解正確,你想從(last_id)的等級中選擇下一個等級 - 我是否正確? (因爲你的解釋有點混亂) - 意思Last_id = 6 - 檢查排名= 3所以搜索排名4 - > id = 4 – Falt4rm