Với bảng MySQL sau:
+-----------------------------+
+ id INT UNSIGNED +
+ name VARCHAR(100) +
+-----------------------------+
Làm thế nào tôi có thể chọn một đơn hàng và vị trí của nó trong số các hàng khác trong bảng, khi được sắp xếp theo name ASC
. Vì vậy, nếu dữ liệu bảng trông như thế này, khi được sắp xếp theo tên:
+-----------------------------+
+ id | name +
+-----------------------------+
+ 5 | Alpha +
+ 7 | Beta +
+ 3 | Delta +
+ ..... +
+ 1 | Zed +
+-----------------------------+
Làm cách nào để chọn Beta
hàng có vị trí hiện tại của hàng đó? Tập hợp kết quả mà tôi đang tìm kiếm sẽ như sau:
+-----------------------------+
+ id | position | name +
+-----------------------------+
+ 7 | 2 | Beta +
+-----------------------------+
Tôi có thể làm một cách đơn giản SELECT * FROM tbl ORDER BY name ASC
sau đó liệt kê các hàng trong PHP, nhưng có vẻ lãng phí khi tải một tập kết quả lớn tiềm năng chỉ cho một hàng.