Php 按何处条件订购

Php 按何处条件订购,php,mysql,sql,codeigniter,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 我需要按照我的where子句中出现的state对结果进行排序(即首先NC,然后TN,然后CO,依此类推) 我该怎么做?我尝试使用了“按顺序排序”,但没有给出这样的结果。试试这个

我有以下疑问:

select `state` from `table1` 
where `state` in ('NC','North Carolina','TN','Tennessee','CO','Colorado','NM','New Mexico','UT','Utah')
limit 200 offset 0
我需要按照我的
where
子句中出现的
state
对结果进行排序(即首先
NC
,然后
TN
,然后
CO
,依此类推)

我该怎么做?我尝试使用了“按顺序排序”,但没有给出这样的结果。

试试这个:

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 

当构造时,您可以将按排序与大小写组合:

ORDER BY CASE 
            WHEN state = 'NC' THEN 1
            WHEN state = 'North Carolina' THEN 2
            ...
         END
您可以使用

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');

等等……

你看不到标签
MySQL
?@verternus问题是
MySQL
tag有没有办法重用
子句中的值列表?@Asad你说的重用是什么意思D@JohnWoo我的意思是,有没有办法不必再写出来。你应该把你的查询缩进四个空格,这样它就会显示为代码
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',.....);