按条件排序

Vam*_*msi 2 php mysql sql codeigniter

我有以下查询:

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

我需要state按照它们出现在我的where子句中排序的结果(即,首先NC,然后TN,然后CO,依此类推).

我怎样才能做到这一点?我尝试过使用order by但是没有给出这个结果.

Joh*_*Woo 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');
Run Code Online (Sandbox Code Playgroud)

  • @Mortalus这个问题有`mysql`标签 (2认同)