当前位置:首页 » 编程语言 » mysqlsql中文排序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

mysqlsql中文排序

发布时间: 2022-12-11 05:18:45

A. mysql 如何中文英文混合排序

排序目标是,英文就按首字母的 a,b,c 排,中文则按汉字的首字母排。
最简单的排序方法只需要一条 SQL 语句就可以完成:
01 mysql> select tag, COUNT(tag) from news GROUP BY tag order byconvert(tag using gbk) collate gbk_chinese_ci;
02 +-----------------+-----------------+
03 | tag | COUNT(tag) |
04 +-----------------+-----------------+
05 | .Net | 3 |
06 | 10000小时 | 1 |
07 | Amazon | 9 |
08 | android | 57 |
09 | C语言 | 1 |
10 | Dennis Ritchie | 2 |
11 | Go语言 | 5 |
12 | IT见解 | 146 |
13 | JavaScript | 4 |
14 | John McCarthy | 1 |
15 | JQuery | 7 |
16 | Zynga | 1 |
17 | 阿里巴巴 | 28 |
18 | 贝尔实验室 | 1 |
19 | 互联网 | 24 |
20 | 简明现代魔法 | 1 |
21 | 淘宝网 | 2 |
22 | 信息图 | 1 |
23 | 余额宝 | 11 |
24 | 支付宝 | 14 |
25 | 植物大战僵尸 | 4 |
26 | 自媒体 | 3 |
27 +-----------------+-----------------+
上面是按 gbk 字符集排序的,那么如果按 utf8 又如何呢?
view sourceprint?
01 mysql> select tag, COUNT(tag) from news GROUP BY tag order byconvert(tag using utf8) collate utf8_unicode_ci;
02 +-----------------+-----------------+
03 | tag | COUNT(tag) |
04 +-----------------+-----------------+
05 | .Net | 3 |
06 | 10000小时 | 1 |
07 | 12306 | 1 |
08 | C语言 | 1 |
09 | IT见解 | 146 |
10 | Quora | 4 |
11 | Twitch | 1 |
12 | Twitter | 19 |
13 | Zynga | 1 |
14 | 三星 | 3 |
15 | 专利 | 1 |
16 | 余额宝 | 11 |
17 | 开曼群岛 | 1 |
18 | 意志力 | 1 |
19 | 植物大战僵尸 | 4 |
20 | 注意力经济 | 1 |
21 | 简明现代魔法 | 1 |
22 | 诺基亚 | 12 |
23 | 诺贝尔奖 | 1 |
24 | 豆瓣 | 3 |
25 | 贝佐斯 | 1 |
26 | 贝尔实验室 | 1 |
27 | 轻博客 | 3 |
28 | 运营 | 1 |
29 | 量子计算机 | 1 |
30 | 黑莓 | 1 |
31 +-----------------+-----------------+
PS:ci是 case insensitive, 即 “大小写不敏感”, a 和 A 会在字符判断中会被当做一样的。
数字和引文排序是没问题,但为什么 H黑莓 会比 L量子计算机 靠后呢?这个在后面的章节会慢慢道来。

B. mysql数据库中数据的排名问题

这个如果想要性能的话,就用下面的sql语句实现:

select orderNo from (select (@rowNum:=@rowNum+1) orderNo , userid ,pid from TABLE,(Select (@rowNum :=0) ) b )t where t.userid=2694
然后php获得这条结果数组,取第一个元素即是排序

如果对这个sql语句有疑问,不明白,可以使用一个比较耗费性能的方法:
select userid from record
执行这条语句,获得一个数组$res
遍历前设置一个记录排序的标识 $seq=1;

for(...){
$userid=$res['userid'];//把第seq 个位置的学号拿出来,跟想要的学号比
if($userid==2694){
break;
}
$seq++;
}
//如果 这个排序标识比结果集数组大小还大,说明没这个userid的记录。
$seq就是排序

我没有测试 你可以自己试一下

C. mysql数据库怎么可以两个条件排序

可以的,order by多个字段规则是这样的,用逗号分隔每一个字段,如果字段不指明排序方式,默认是增序。排序的方法是先按第一个字段排序,如果有相同的再按后续的字段依次排序。

举个例子

D. mysql数据库,排序的语句

具体如下:

1、第一步,创建一个测试表,代码如下,见下图,转到下面的步骤。

E. 如何根据MYSQL数据库中的某一个字段进行排序呢

先把分类全取出来..并随机排序..
取排在第一个分类
例如是
西装
然后查询的时候
order
by
(category='西装')
desc,category
即可实现要求.
select
*
from
(select
*
from
tablename
where
A='01'
order
by
B
asc)
a
union
all
select
*
from
(select
*
from
tablename
where
A='02'
order
by
B
desc)
a

F. MySQL数据库数据怎么实现排序输出

MySQL中排序输出需要用order by。

如图,test表中有如下数据:

G. java如何实现mysql数据库有中文字段中文排序

如果字段是gbk字符集的直接order by
如果是UTF-8字符集,查询的时候,通过convert函数,把查询出来的数据使用的字符集gb2312编码就可以了,然后使用convert之后的中文排序。
如:select name from test1 order by convert(name using gb2312) asc;

H. mysql怎么读

mysql读音:英[maɪ es kju: el]、美[maɪ ɛs kju ɛl]。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件之一。

使用注意事项:

在 MySQL 数据库中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在 MySQL 的很多版本中都存在。如果这个问题不解决,那么 MySQL 将无法实际处理中文。

出现这个问题的原因是:MySQL 在查询字符串时是大小写不敏感的,在编绎 MySQL 时一般以 ISO-8859 字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是对于包含中文的字段加上 "binary" 属性,使之作为二进制比较,例如将 "name char(10)" 改成 "name char(10)binary"。