Mysql语句以特定顺序从子集中提取数据库中的信息

时间:2015-09-07 01:37:04

标签: php mysql

我有一个名为pages的表,我用它来做几件事,包括站点的导航。在该表中,我有页面名称,parentid,navid(如果它在导航中则设置为1,否则为0并且不计算它),以及指示顺序的navorder。我正在翻阅所有父母的表格然后做一个选择语句来拉动所有孩子(如果他们存在)为该父母做出导航的下拉列表。如果有8个父母,每个孩子都有孩子,每次页面加载时最终都会有很多选择语句。我想知道在1 sql调用中是否有更好的方法可以返回一个包含所有父子节点的数组。

我希望拥有强大MySQL背景的人能够朝着正确的方向推动我。

2 个答案:

答案 0 :(得分:0)

SELECT * FROM pages 
WHERE parentid = *the page id* AND navid = 1 
ORDER BY *column you want to sort by* 

在升序/降序的末尾添加ASCDESC

你在编写哪种语言?

请参阅:http://www.w3schools.com/sql/sql_orderby.asp

答案 1 :(得分:0)

SELECT parent.id, child.id
FROM pages parent LEFT JOIN 
pages child ON parent.id = pages.parentid
WHERE parent.parentid IS NULL
ORDER BY parent.navorder, child.navorder