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