我试图显示数据库中的项目,这是一个例子
user | 123 | abc
Jack | 0 | b
John | 0 | c
Doe | 1 | a
我希望它在网站上显示的方式是这样的
user | 123 | abc
Doe | 1 | a
Jack | 0 | b
John | 0 | c
我想通过abc
(abc = 1)和123
(猫然后狗然后鸡)来命令
提示:
abc 0 或 1
123 有多种内容,例如:鸡,狗, cat 等。
该字段未命名为123它只是一个示例,这是我现在正在使用的查询:SELECT * FROM users order by paid = 1,animal =' cat',animal =' dog'它首先带来付费用户,但不是动物订购
答案 0 :(得分:0)
文档中对此进行了解释:
SELECT * FROM t1
ORDER BY key_part1,key_part2,... ;
有关更复杂的订购,请参阅此处:
http://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html
答案 1 :(得分:0)
这应该有效:
ORDER BY abc, 123
由于ASC是默认值,因此您无需在您的情况下编写ASC。
答案 2 :(得分:0)
您需要使用~ORDER BY 123 DESC和abc ASC`
用您的表名替换test
。
select t.user,t.123,t.abc from test t order by t.123 DESC,t.abc ASC
输出
user 123 abc
Doe 1 a
Jack 0 b
John 0 c
答案 3 :(得分:0)
drop table users;
create table users (name varchar(5),animal varchar(10),paid int);
insert into users values
('abc','dog',1),
('def','dog',0),
('ghi','chicken',0),
('jkl','cat',0);
select * from users
order by paid desc,
case
when animal = 'cat' then 1
when animal = 'dog' then 2
when animal = 'chicken' then 3
end
结果
+------+---------+------+
| name | animal | paid |
+------+---------+------+
| abc | dog | 1 |
| jkl | cat | 0 |
| def | dog | 0 |
| ghi | chicken | 0 |
+------+---------+------+
答案 4 :(得分:0)
选择a.user,a.123,a.abc从a.123 DESC,a.abc ASC测试订单