因為在做一個項目需要篩選掉一部分產品列表中的產品,使其在列表顯示時排在最後,但是所有產品都要按照更新時間排序。
研究了一下系統的數據庫結構後,決定將要排除到後面的產品加為粗體,這樣在數據庫中的“ifbold”就會被標記為1,而其他產品就默認標記為0,然後就打算使用MySQL在Order By時進行多字段排序。
Order by的多條件分割一般使用英文逗號分割,所以我測試的SQL如下:
復制代碼 代碼如下:
select * from {P}_product_con where $scl order by 'ifbold' asc,$myord desc limit $pagelimit"
但是運行後沒有將”ifbold“正序,但是單純正序”ifbold“卻正常,調試了N久,無意中在phpMyAdmin中運行卻發現正常,仔細比對後發現問題原來是來自於”ifblod“的引號上。改為下列語句就正常了:
復制代碼 代碼如下:
select * from {P}_product_con where $scl order by `ifbold` asc,$myord desc limit $pagelimit
所以以後大家再程序中寫SQL語句時也要注意引號的問題哦!
以上所述就是本文的全部內容了,希望大家能夠喜歡。