资讯专栏INFORMATION COLUMN

mysql distinct 使用注意事项

fuchenxuan / 1014人阅读

摘要:想查询最近条订单记录中订单来源有哪几种,刚开始使用的命令是发觉查询的记录很多明显条外的数据也查出来了。后面改成下面的这时就对了。演示上述现象另外在版本中第一种写法会报错如下所示

想查询最近N条订单记录中订单来源(order_from)有哪几种,刚开始使用的SQL命令是

select distinct order_from from order order by id desc limit 1000  

发觉查询的记录很多 明显1000条外的数据也查出来了。 后面改成下面的SQL

select distinct order_from from (select order_from from order order by id desc limit 1000) 

这时就对了。

演示上述现象
select * from distinct_test;
+----+------+
| id | a    |
+----+------+
|  1 | aaa  |
|  2 | aaa  |
|  3 | bbb  |
|  4 | bbb  |
|  5 | ccc  |
|  6 | ffffd  |
|  7 | ffffd  |
|  8 | foo  |
|  9 | bar  |
+----+------+

select distinct a  from distinct_test order by id limit 4;
+------+
| a    |
+------+
| aaa  |
| bbb  |
| ccc  |
| ffffd  |
+------+

select distinct a  from (select a from distinct_test order by id limit 4) a;
+------+
| a    |
+------+
| aaa  |
| bbb  |
+------+

另外在5.7版本Mysql中第一种写法会报错 如下所示

select version();
+-----------+
| version() |
+-----------+
| 5.7.12    |
+-----------+
select distinct a from distinct_test order by id limit 4;
ERROR 3065 (HY000): Expression #1 of ORDER BY clause is not in SELECT list, references column "test.distinct_test.id" which is not in SELECT list; this is incompatible with DISTINCT

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48644.html

相关文章

  • mysql innodb 索引使用指南

    摘要:索引使用指南索引相关概念聚簇索引使用引擎时,每张表都有一个聚簇索引,比如我们设置的主键就是聚簇索引特点查询数据特别快,因为聚簇索引和行数据存储在磁盘的同一页,这样可以减少磁盘操作次数影响性能的重要因素注意主键索引应该尽量简短二级索引除了聚簇 mysql innodb 索引使用指南 索引相关概念 聚簇索引(clustered index) 使用innodb引擎时,每张表都有一个聚簇...

    yedf 评论0 收藏0
  • MySql入门-(二)

    摘要:然而,在表的名称方面并不遵循此规定。在使用时需要注意的是,不要把唯一主键作为查询条件。子句用于提取那些满足指定标准的记录。第一个条件和第二个条件中只要有一个成立,则运算符显示一条记录。操作符用于选取介于两个值之间的数据范围内的值。 最近刚刚开始学习Mysql,然而学习MySql必经的一个过程就是SQL语句,只有按照文档从头开始学习SQL语句。学习的过程是痛苦的,但是学完的成果是甘甜的。...

    233jl 评论0 收藏0
  • 第四届江西省高校网络安全技能大赛初赛部分Writeup

    摘要:文章目录保存下载页面后在中发现一个函数把内容拿出来放到控制台直接执行没 文章目录 WebEasyPHPfunny_gameadminloginSellSystem...

    番茄西红柿 评论0 收藏2637
  • mysql常用函数

    摘要:下面都是一些比较常用且简单的函数,在工作中也是非常常用的。作用显示指定字符长度。作用格式化日期。常用于数据统计。表示单位,支持毫秒,秒,小时,天,周,年等。命令作用去重应用场景需要统计类型,状态,计算区分度时。 下面都是一些比较常用且简单的函数,在工作中也是非常常用的。 1.显示当前时间 命令:select now()。作用: 显示当前时间。应用场景: 创建时间,修改时间等默认值。例子...

    Fundebug 评论0 收藏0
  • 透析mysql查询语句

    摘要:在中查询语句可以直接的使用语句关于大概有一下几个子语句定义别名提取列的时候如果你觉得这个列名起的有点辣鸡那么你可以自己定义一个新的别名基本格式为并且你还可以对列进行简单的处理生成新的列当然你也可以选择不使用语句这也是可行的去除重复行在中去除 在Mysql中,查询语句可以直接的使用SELECT语句. 关于SELECT,大概有一下几个子语句: showImg(https://segment...

    zhisheng 评论0 收藏0

发表评论

0条评论

fuchenxuan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<