嗨,有一个类别表

categoryId
Categoryname
Type


这些是列名,所以我需要显示所有类别,其中type ='card',但最上面的常规类别是我的代码

SELECT * FROM `tbl_Catagory`
where CatagoryId=1 and type='Card'
union select * from tbl_Catagory`
where CatagoryId !=1 and type='Card'
order by CatagoryId desc`


在这里,我得到了desc的顺序,但底部却是general,所以我需要的是顶部的general类别,其余类别基于categoryId降序显示

最佳答案

您不需要UNION

SELECT *
FROM tbl_Catagory
WHERE type='Card'
ORDER BY (CatagoryId=1) DESC
       , CatagoryId DESC


之所以起作用,是因为True的值为1,而False的值为0ORDER BY的第一部分确保仅对具有CatagoryId=1的组件进行排序。然后,所有其余的随后按其CategoryId降序排序。

关于php - 查询中的联合无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9511668/

10-15 10:46