ด้วยตาราง MySQL ต่อไปนี้:
+-----------------------------+
+ id INT UNSIGNED +
+ name VARCHAR(100) +
+-----------------------------+
ฉันจะเลือกเดียวแถวและตำแหน่งในหมู่แถวอื่น ๆ name ASC
ในตารางเมื่อเรียงตาม ดังนั้นหากข้อมูลตารางมีลักษณะเช่นนี้เมื่อจัดเรียงตามชื่อ:
+-----------------------------+
+ id | name +
+-----------------------------+
+ 5 | Alpha +
+ 7 | Beta +
+ 3 | Delta +
+ ..... +
+ 1 | Zed +
+-----------------------------+
ฉันจะเลือกBeta
แถวที่รับตำแหน่งปัจจุบันของแถวนั้นได้อย่างไร ชุดผลลัพธ์ที่ฉันกำลังมองหาจะเป็นดังนี้:
+-----------------------------+
+ id | position | name +
+-----------------------------+
+ 7 | 2 | Beta +
+-----------------------------+
ฉันสามารถทำได้ง่ายๆSELECT * FROM tbl ORDER BY name ASC
แล้วแจกแจงแถวใน PHP แต่ดูเหมือนว่าจะสิ้นเปลืองที่จะโหลดชุดผลลัพธ์ขนาดใหญ่สำหรับแถวเดียว