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