2

私は次のクエリを持っています:

select `state` from `table1` 
where `state` in ('NC','North Carolina','TN','Tennessee','CO','Colorado','NM','New Mexico','UT','Utah')
limit 200 offset 0

stateに表示される順序で結果を並べ替える必要があります(つまり、最初に、次に、次に、など)。whereNCTNCO

これどうやってするの?使ってみorder byましたが、結果が出ません。

4

4 に答える 4

6

あなたが使用することができますORDER BY FIELD

SELECT `state`
FROM `table1`
WHERE `state` IN ('NC','North Carolina','TN','Tennessee','CO','Colorado','NM','New Mexico','UT','Utah')
ORDER BY FIELD(`state`, 'NC','North Carolina','TN','Tennessee','CO','Colorado','NM','New Mexico','UT','Utah');
于 2012-11-14T06:12:00.880 に答える
3
SELECT col_name
FROM table_nane
WHERE col_nane IN ('NC','North Carolina','TN','Tennessee','CO','Colorado','NM','New Mexico','UT','Utah')
ORDER BY FIELD(`state`, 'NC',.....);

等々....

于 2012-11-14T06:32:34.467 に答える
1

これを試して:

order by case when `state`='NC' or `state`='North Carolina' then 1 
              when `state`='TN' or `state`='Tennessee' then 2
              when `state`='CO' or `state`='Colorado' then 3
         end 
于 2012-11-14T06:11:12.540 に答える
1

コンストラクトORDER BYと組み合わせることができます:CASE WHEN

ORDER BY CASE 
            WHEN state = 'NC' THEN 1
            WHEN state = 'North Carolina' THEN 2
            ...
         END
于 2012-11-14T06:11:42.710 に答える