2

こんにちは、私はこのようなテーブル構造を持っています

id  name         is_file   disp_order   parent
1   PDF Folder   0         2    
2   textpdf1     1         1            1
3   PPT Folder   0         1    
4   testppt1     1         2            3
5   testppt2     1         1            3

私の要件は、データを順番に取得することです。つまり、ファイルは名前順で、フォルダーは disp_order 順です。

私は 1 つのクエリを書きましたが、特定の親に 10 人を超える子がいる場合は失敗します。disp_order は数値の Myquery ではなく文字列としても機能します。

 select id,nae,is_file,disp_order from contents 
where parent_id=3
order by case 
when is_file=1 then display_text
when is_file=0 then display_order 
end ASC;

私のDB親3には、この1,10,11,12,2,3,4,5,6のような順序でフェッチするタイプのフォルダの20個のレコードがあります。

4

3 に答える 3

0

ソートを整数で行うには、以下を試してください。

select id,nae,is_file,disp_order from contents 
where parent_id=3
order by case 
when is_file=1 then display_text
when is_file=0 then display_order * 1
end ASC;
于 2013-10-04T07:44:33.503 に答える