首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql:深究 sql 默认排序 order by

mysql 语句中如果没有使用 order by 来排序,通常会用 主键正序排列,但是有的时候不是这样,来看一个实例。...实例 ---- 群友问:请教一个问题,mysql 默认排序问题,当sql 语句 的排序没有指定 主键(id)的时候是按着什么规则排序的呢? ?...这个 sql 语句 当 hit_count = 0 和 uptime = 0 时 的数据和 跟 limit_count 变化 ?...大概意思就是数据储存的表 不是有序的,而是一个集合,在没有使用 order by 来排序的时候,不能默认就是 根据主键排序。...结论 ---- 到这大家应该明白了,mysql 的没有默认排序,如果需要排序一定要加上 order by 来排序,大家有没有遇到过这样的问题,欢迎一起来讨论,如果有不对的地方,请指正,感谢。

4.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Thinkphp中MySQL按照中文拼音排序问题的处理

    背景 由于客户需求,需要按照汉字的首字拼音排序,项目开发中免不了数据的排序问题,排序中又免不了对中文的处理。...今天分享一下如何在mysql中对中文进行排序,介绍下thinkphp连贯操作的order底层原理 例:M(‘Project’)->order(‘name’)->select(); 这段代码最后转换成原生...发现还不是想要的效果,这也不能怪mysql,毕竟中文博大精深,而我们的目标实际是中文的拼音排序,默认情况下mysql是不认识的(虽然我的数据库所有编码都已经设置为了utf-8)。...用‘强大’的百度查了下,mysql要想实现中文拼音排序有两种常用的办法: 第一种 不修改表结构,只修改查询语句: 明确的告诉mysql我这个字段要以gbk编码处理(用gb2312也可以的) 如果数据表tbl...效果和第一种方法一样 还有一种我没有验证的方法,网友提供的,大家可以参考下: 如果你使用源码编译MySQL,可以编译MySQL时使用 –with–charset=gbk 参数,这样MySQL就会直接支持中文查找和排序

    2.5K10

    SQL排序(二)

    SQL排序(二)查询排序InterSystems SQL提供了排序规则功能,可用于更改字段的排序规则或显示。查询明细排序排序功能应用于查询选择项会更改该项目的显示。...但是,无论字段/属性的排序规则类型如何,SQL Contains运算符([)都使用EXACT排序规则:SELECT Home_City FROM Sample.Person WHERE Home_City...InterSystems SQL支持多种旧式排序规则类型。...没有相应的SQL排序规则功能。注意:如果使用EXACT,UPPER或ALPHAUP排序定义了字符串数据类型字段,并且查询在此字段上应用了%STARTSWITH条件,则可能导致不一致的行为。...SQL和NLS排序上面描述的SQL排序规则不应与InterSystems IRIS NLS排序规则功能混淆,后者提供符合特定本国语言排序规则要求的下标级别编码。

    1.6K30

    SQL排序(一)

    排序规则指定值的排序和比较方式,并且是InterSystems SQL和InterSystemsIRIS®数据平台对象的一部分。有两种基本排序规则:数字和字符串。...此转换仅用于整理目的;在InterSystems中,无论所应用的排序规则如何,SQL字符串通常以大写和小写字母显示,并且字符串的长度不包括附加的空格字符。...它将任何只包含空格(空格、制表符等)的值作为SQL空字符串进行排序。 SQLSTRING支持可选的maxlen整数值。...注意:还有多种传统排序规则类型,不建议使用。在SQL查询中,可以指定不带括号%SQLUPPER Name或带括号%SQLUPPER(Name)的排序规则函数。...转换为大写的SQL排序规则不会转换eszett, eszett保持为单个小写字母不变。表字段/属性定义排序SQL中,排序规则可以分配为字段/属性定义的一部分。字段使用的数据类型确定其默认排序规则。

    1.5K20

    SQL 混合排序

    既要按照 score 排序,又要考虑到 A、A-1、A-2 这种数据之间的关系并使用另一种排序规则。 据分享这道题的朋友说,实际上这是一份店铺的销量数据。...出题人希望能依据城市、销售额查看各个店铺的销售数据,并且当存在分店时,分店能紧挨在总店后面按照 id 排序。...如果按照规则 ORDER BY city,score DESC 排序,我们可以做到让每个总店先按销售额排序,但没法保证分店能挨着总店排在一起。...按照规则 ORDER BY city,base_score,id 排序就能满足题目的要求。 在 MySQL 中,使用函数 SUBSTRING_INDEX() 可以提取出我们想要的数据。..., '-', -1) AS seq; base seq ------ -------- A 1 分店要获取到总店的销售额,只需一次自关联就能做到,完整的 SQL

    86610

    SQL去重语句_sql中文

    sql语句去重 sql语句通过DISTINCT关键字去重, 用于返回唯一不同的值。DISTINCT关键字需要搭配SELECT 语句使用,语法为SELECT DISTINCT 列名称 FROM 表名称。...sql语句去重 —你上面写的 delete x from A x where x.id > (select min(id) from A y where x.A1 = y.A1 and x.A2=y.A2...=’select top 3 * from `pw_threads` AS t where tid in (@tid)’ exec @sql end 关于SQl语句去重的,怎么去掉重复的内容 可以采用组函数...(*)>1; 第二:把这些数据插入到一个中转表中; SQL 略 第三:把原表中的重复数据删除; SQL 略 第四:把备份到中转表中的唯一化之后的数据,再插入原来的表中。...SQL 略 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    1K20

    Mysql常用sql语句(7)- order by 对查询结果进行排序

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 通过select出来的结果集是按表中的顺序来排序的...[ASC | DESC] ASC:升序排序,默认值 DESC:降序排序 注意点 order by关键字后可以跟子查询(后面展开讲) 如果字段值是NULL,则当最小值处理 如果指定多个字段排序,则按照字段的顺序从左往右依次排序...单字段排序的栗子 根据id倒序排序 select * from yyTest order by id desc; ?...多字段排序的栗子 先根据sex倒序排序,然后根据height升序排序 select * from yyTest order by sex desc, height asc; ?...知识点 对多个字段排序时,只有第一个排序字段有相同的值,才会对第二个字段进行排序,以此类推 如果第一个排序字段的所有数据都是唯一的,将不会对第二个排序字段进行排序,以此类推 按字母(A-Z进行排序,大小写不敏感

    2.8K30

    MySQL进阶学习之SQL优化【插入,主键,排序,分组,分页,计数】

    ​ 主键顺序插入 : 1 2 3 4 5 7 8 9 15 21 88 89 大批量插入数据 如果一次性需要插入大批量数据(比如: 几百万的记录),使用insert语句插入性能较低,此时可以使用MySQL...`username`) ​ ) ENGINE = INNODB DEFAULT CHARSET = utf8; 2、设置参数 -- 客户端连接服务端时,加上参数 -–local-infile mysql...3、order by 优化 MySQL排序,有两种方式: Using filesort : 通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sortbuffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫...在MySQL8版本中,支持降序索引,我们也可以创建降序索引。...create index idx_user_sex_birthday_ac on tb_user(sex asc ,birthday desc ); 然后再执行SQL语句查询。

    2.2K30

    mysql】order by排序

    排序数据 1. 排序规则 如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。 使用 ORDER BY 对查询到的数据进行排序操作。...使用 ORDER BY 子句排序 ASC(ascend): 升序 DESC(descend):降序 ORDER BY 子句在SELECT语句的结尾。 2....单列排序 按照salary从高到低的顺序显示员工信息 SELECT employee_id,last_name,salary FROM employees ORDER BY salary DESC; [...BY department_id DESC,salary ASC; [在这里插入图片描述] 可以使用不在SELECT列表中的列排序。...在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序

    2.4K60

    SQL自定义排序

    今天给大家介绍几种方法来求解这样的问题,我们先看下示例表: 这张表的数据是随机录进去的,下面我们希望按照我们指定的顺序输出为如下内容: 注意:这里既没有按照人口的多少排序,也没有按照GDP的多少排序,更加没有按照城市的拼音首字母排序...,完全是按照我们自己的意愿进行排序。...方法一 ORDER BY CASE WHEN 通过在ORDER BY的时候,我们对想要的输出顺序使用CASE WHEN,将文本转化为可排序的数字来进行间接排序,具体代码如下: SELECT * FROM...WHEN City='上海' THEN 3 WHEN City='重庆' THEN 4 WHEN City='广州' THEN 5 END 此方法针对比较简单的查询容易实现自定义排序...时常用在比较复杂的查询语句中,且需要自定义排序的场景下。 方法三 创建临时表 相比上面两种方法,创建临时表的方法可以极大的减少代码量。

    25310
    领券