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

如何根据MYSQL数据库中的某一个字段进行排序?,第1张

先把分类全取出来,并随机排序,取排在第一个分类。

例如:西装

然后查询的时候 order by (category='西装') desc,category 即可实现要求。

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。

MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。

MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。

下面这个不知是否可行:

create table books(`id` int, `name` varchar(16),`type` varchar(16))

insert into books(`id`,`name`,type)

select 1 as `id`, 'book11' as `name`, 'type1' as `type`

union all

select 2, 'book12', 'type1'

union all

select 3, 'book13', 'type1'

union all

select 4, 'book14', 'type1'

union all

select 5, 'book15', 'type1'

union all

select 6, 'book21', 'type2'

union all

select 7, 'book22', 'type2'

union all

select 8, 'book23', 'type2'

union all

select 9, 'book24', 'type2'

union all

select 10, 'book25', 'type2'

union all

select 11, 'book26', 'type2'

union all

select 12, 'book31', 'type3'

union all

select 13, 'book32', 'type3'

union all

select 14, 'book33', 'type3'

select t.`id`, t.`name`, t.type, t.rank

  from (

         select b.`id`, b.name, b.type,

                if(@type = b.type, @rank := @rank + 1, @rank := 1) as rank,@type:=b.type

           from (select id, name, type from books order by type asc, rand() desc) as b,

           (select @type := null, @rank := 0) as a

       ) as t

where t.rank<=3

MySQL 中可以使用 ORDER BY FIELD('column', 1,2,3...) 的语法来自定义排序方法。

例如需要按照 ID 5,3,1,2, 7 的顺序来排序:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8649980.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存