`
王之子
  • 浏览: 104996 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

是否有两条一样的记录的SQL该怎么写

阅读更多

在开发过程中会遇到这样一种场景:用户在这个表中有两条一样记录的所有用户给抓取出来,举个例子,你想把用户表有两个相同手机号码的记录给抓出来,该怎么来写SQL呢?

 

select mobile from users group by mobile having count(*)>1

 

这样你就能获取到相同的手机号码的记录了。想再一步获取详情信息之需这样子:

 

select * from users where mobile in (select mobile from users group by mobile having count(*)>1)

 

我们再来看一个具体的例子,以电商网站 ECShop 为例,想监控过去某段时间内的订单是否有重复的商品存在,该怎么写呢?毕竟这涉及到多张表。

 

select o.order_id,o.order_sn from ecs_order_goods g inner join ecs_order_info o on g.order_id=o.order_id  where  o.add_time > 1558748992  group by o.order_id  HAVING count(g.goods_id) > 1

 

又或者这样的场景:同个用户是否有相同的充值记录

 

select user_id from ecs_user_account where paid_time > 1559267392 and process_type = 0 and is_paid=1 group by user_id,amount having count(*)>1

 

分享到:
评论

相关推荐

    SQL把一条记录金额平分到n个人并进行汇总.txt

    SQL把一条记录金额平分到n个人并进行汇总.txt,这里说的是Access数据库中,如何将同一条记录金额平分到n个人里,金额会按照实际人数进行平分,空的则不平分,如:一条记录有三个营业员字段,但是实际不知道有几个...

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、...

    SQL Server将一列的多行内容拼接成一行的实现方法

    昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 ...

    sql面试题库

    sql常见面试查询实例,复杂sql查询,学生表查询实例

    经典全面的SQL语句大全

    根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:  1.执行SQL查询语句时,将返回查询得到的记录集。用法为:  Set 对象变量名=连接对象.Execute("SQL 查询语言")  Execute方法调用后,会自动...

    sql+ado交通灯

    与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员...

    SQL编写规范(数据库操作规范)

     EXPLAIN PLAN的分析结果是用缩进的格式排列的,最内部的操作将最先被解读,如果两个操作处于同一层中,带有最小操作号的将首先被执行    目前许多第三方的工具如PLSQL Developer和TOAD等都提供了极其方便的...

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    找了网上很多资料,都没有详细的做法有的还很复杂,自己写了个分割函数,通过直接查询就能分割多行,很方便。

    经典SQL语句大全

    14、说明:前10条记录 select top 10 * form table1 where 范围 15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)...

    SQL 合并多行记录的相同字段值

    有时候会遇到这种情况,数据库查询返回多行记录,且每行记录由另外符合条件的多条记录内容合并,遇到这种情况,我们可以选择下面两种方式

    SQL中遇到多条相同内容只取一条的最简单实现方法

    本文主要介绍SQL中遇到多条相同内容只取一条的最简单实现方法,比较实用,希望能给大家做一个参考。

    数据库编程期末答疑,卷子讲解,SQL server相关操作讲解,如有侵权请联系删除

    (1) 新增一位同学:200215129,王大鹏,男,23,CS,新增该生一条选课数据:该生选了数据库课程,该课主教教师未知,还未考试。完成后请将查询代码保存到脚本文件3_4_1.sql。 (2) 修改少数民族学生李勇所有选修课...

    C# 在sql server数据时间段内,间隔时间查询数据方法

    在sql server 数据库中,在一段时间范围内,间隔几条数据取出一条信息的检索方法。如:时间段内“2020-10-10 00:00:00” 到“2020-10-11 00:00:00”内,间隔30秒取出一套数据方法

    SQL性能优化

    dj(电压等级)及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的时候99%条记录都进行dy_...

    SQL COOKBOOK(压缩1/2)

    1.10从表中随机返回n条记录 1.11查找空值 1.12将空值转换为实际值 1.13按模式搜索 第2章 查询结果排序 2.1以指定的次序返回查询结果 2.2按多个字段排序 2.3按子串排序 2.4对字母数字混合的数据排序 2.5处理...

    SQL 优化原则

    上面这条语句完全可以查询出是否有Bill Cliton这个员工,但是这里需要注意,系统优化器对基于last_name创建的索引没有使用。  当采用下面这种SQL语句的编写,Oracle系统就可以采用基于last_name创建的索引。 **...

    sql触发器实例详细讲解

    注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。 一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。

    远程连接不上SQLSERVER

    添加一条IP地址与服务器名称的对应记录,如: 172.168.10.24 myserver 2.或在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明. ============= 其次,使用 telnet 命令检查SQL Server服务器工作状态 ...

    常用SQL 语句大全

    14、前10条记录 15、选择每组中的最大数 第三部分、 技巧 1、True/False的使用 2、收缩数据库 3、压缩数据库 dbcc shrinkdatabase(dbname) 4、转移数据库给新用户以已存在用户权限 5、检查备份集 6、修复...

Global site tag (gtag.js) - Google Analytics