MySql Select id,name from city
order by (case when p_Orderby = 1 then id
when p_Orderby = 2 then `name` else `name` end);p_Orderby = 1,按ID排序时,排序的结果怎么会是1,11,2这种格式?是不是反ID自动转成字符了?
我上面写的排序方式能不能按数据排序?
order by (case when p_Orderby = 1 then id
when p_Orderby = 2 then `name` else `name` end);p_Orderby = 1,按ID排序时,排序的结果怎么会是1,11,2这种格式?是不是反ID自动转成字符了?
我上面写的排序方式能不能按数据排序?
id name
1, a
2,z,
11,cp_Orderby = 1
排序结果:
id name
1, a
2,z,
11,cp_Orderby = 2
排序结果:
id name
1, a
11,c,
2,z
p_Orderby = 1 是按ID排序的
order by (case when p_Orderby = 1 then id
when p_Orderby = 2 then `name` else `name` end); 如果Order by 有 case语句,如上:
按id排序的话,会出现在以下结果:id name
1, a
11,c,
2,z
order by (case p_Orderby when 1 then id
when 2 then `name` end);
CASE WHEN有问题
order by (case when p_Orderby = 1 then id
when p_Orderby=2 then `name`
else `name` end);
是可以执行的。
p_Orderby = 1
排序结果:
id name
1, a
2,z,
11,c 排序方式正确
select * from test1
order by (case when @p_Orderby=1 then id
when @p_Orderby=2 then `name` end);排序结果:id name
1 a
11 c
2 z
3 b