我有一个辅导网站,约有 50 名导师。我想将搜索结果分成 5 页,每页 10 位导师。
结果经过加权,因此它们不会根据某些主键按顺序显示。我认为这会阻止我为第一页编写这样的查询:
SELECT * FROM teachers WHERE primary_key > 0 AND primary key < 11
第二页的查询如下:
SELECT * FROM teachers WHERE primary_key > 11 AND primary key < 21
那么,我如何一次系统地只接受 10 行,记住它们是什么,然后为下一页选择接下来的 10 行?我是否应该有第二个键,在计算权重后为结果分配数字顺序?这可以作为一个临时专栏吗?这是在 PHP/MySQL 环境中分割结果的糟糕方法吗?
最佳答案
您可以使用 ORDER BY 对结果进行排序,也可以使用 LIMIT 来声明限制。
SELECT * FROM teachers ORDER BY primary_key LIMIT 10
要从某个点开始(即 11 并仅显示 10),您可以添加以下内容:
SELECT * FROM teachers ORDER BY primary_key LIMIT 11,10
然后您可以创建一个 PHP 脚本来生成限制偏移量的值...例如 21,10、31,10 等。
关于php - 对 php/MySQL 搜索结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24063298/