今天又测试了一下,使用utf8字符集创建的表或者字段使用的是utf8字符集,中文的排序是不正确的,如果表和字段是gbk字符集,则可以正确的排序。
创新互联建站作为成都网站建设公司,专注网站建设公司、网站设计,有关成都定制网页设计方案、改版、费用等问题,行业涉及塔吊租赁等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
mysql
create
table
tt_character
(name
varchar(20))
default
charset
gbk;
Query
OK,
rows
affected
(0.03
sec)
mysql
create
table
tt_character1
(name
varchar(20))
default
charset
utf8;
Query
OK,
rows
affected
(0.04
sec)
mysql
insert
into
tt_character
values('兰州'),('安徽'),('江西');
Query
OK,
3
rows
affected
(0.00
sec)
Records:
3 Duplicates:
0 Warnings:
mysql
insert
into
tt_character1
values('兰州'),('安徽'),('江西');
Query
OK,
3
rows
affected
(0.00
sec)
Records:
3 Duplicates:
0 Warnings:
mysql
select
*
from
tt_character1
order
by
name;
+------+
|
name
|
+------+
|
兰州
|
|
安徽
|
|
江西
|
+------+
3
rows
in
set
(0.00
sec)
mysql
select
*
from
tt_character
order
by
name;
+------+
|
name
|
+------+
|
安徽
|
|
江西
|
|
兰州
|
+------+
3
rows
in
set
(0.00
sec)
这样写吧:
select
*
from
(表明)
order
by
is_pro
desc,posdate
desc;
这样排有个不好的就是他会把推荐的也按倒叙排列,不过到是能实现先1,后0
在select语句的order by子句中写出排序所依据的字段即可,每个字段后面可以指定升序(asc)或者降序(desc)
你好,按照你说的 不太可能实现 ,因为一行数据 就是一行数据 ,你如果按照第一个字段 排序 第一行也许 是 id 是1的 但按照第二个字段排序 也许是id是2的
有矛盾的
所以一般情况无法实现