mysqlデータカスタムソートクエリー
以前はクエリー・ソートを行い、フィールドでソートしましたが、必要な順序とフィールドの順序が一致しませんでした.
例:
statusフィールドには1,2,3の値があります
需要はソート2,1,3である.
通常使用されるorder by'status'asc/descは効果を失います.
方法1:
order by FIELD(is_audit,2,1,3) asc
方法2:
漢字の並べ替え
order by charindex(NAME,‘張三李四王五趙六’)asc
方法4:
thinkphp 5のカスタムソート
$de=newthinkdbExpression('field(lottery_order.winClass、「一等賞」、「二等賞」、「三等賞」、「四等賞」、「五等賞」、「六等賞」、「七等賞」、「八等賞」、「九等賞」)
Db::table('')->where($Where) ->order($de)->select();
例:
statusフィールドには1,2,3の値があります
需要はソート2,1,3である.
通常使用されるorder by'status'asc/descは効果を失います.
方法1:
order by FIELD(is_audit,2,1,3) asc
方法2:
ORDER BY
case
when name like '2' then 2
when name like '1' then 1
when name like '3' then 3
end
方法3:漢字の並べ替え
order by charindex(NAME,‘張三李四王五趙六’)asc
方法4:
thinkphp 5のカスタムソート
$de=newthinkdbExpression('field(lottery_order.winClass、「一等賞」、「二等賞」、「三等賞」、「四等賞」、「五等賞」、「六等賞」、「七等賞」、「八等賞」、「九等賞」)
Db::table('')->where($Where) ->order($de)->select();