我有MySQL中的問題,我有ID和2-14的表...財產以後這樣的MySQL的排序表,並得到行的位置
ID -------- number 3 -------- 340 1 -------- 10 12 -------- 23
現在我想通過ID來selecet,假設ID = 3,並且有沒有方法說明排序表中該行的位置?在這種情況下,ID = 3將具有第一位置,最高值的數量。 ID = 12將有第二位......等等。
我有MySQL中的問題,我有ID和2-14的表...財產以後這樣的MySQL的排序表,並得到行的位置
ID -------- number 3 -------- 340 1 -------- 10 12 -------- 23
現在我想通過ID來selecet,假設ID = 3,並且有沒有方法說明排序表中該行的位置?在這種情況下,ID = 3將具有第一位置,最高值的數量。 ID = 12將有第二位......等等。
如果你返回通過PHP中的結果,你可以使用PHP使用array_search
確定數組的ID字段中的值「3」的位置,或者改變您的SQL如下:
select
@rownumber:[email protected] as 'rownumber',
id_field, number_field
from yourtable, (SELECT @rownumber:=0) rownumber order by number_field DESC
這將增加一個額外的列「ROWNUMBER」提供的每一行
的號碼,如果有用的嘗試此查詢。
SELECT ID,number FROM table_name ORDER BY number DESC;
謝謝。
set @row_number:=0;
select * from
(select ID, @row_number:[email protected]_number+1 from your_table order by number desc)
as row_to_return
where ID=3;
以上查詢可以更改爲將ID
替換爲您需要的任何東西。
但是,對於簡單的用法,ORDER BY number DESC
是更好的和優化的。
Thnak你,這個工程,但只有如果我想打印所有的結果循環像或while foreach在PHP中。 – Martin 2010-12-07 13:58:29
我想要的是在有序表格中找到該行的位置並僅打印此值...如果您知道我的意思,則不想在數據庫中使用大量用法:( – Martin 2010-12-07 13:59:13