mysql查询每个用户的第一条记录_mysql怎么创建用户

mysql查询每个用户的第一条记录_mysql怎么创建用户数据库记录:MYSQL查询不同用户最新的一条记录方法1:查询出结果后将时间排序后取第一条(只能取到一条,并且不能查询不同客户的记录)SELECTCUSTOMER_ID,CONTENT,MODIFY_TIMEFROM`service_records`ORDERBYMODIFY_TIMEDESCLIMIT1;查询结果:方法2:查询排序后groupby(先按照MODIFY_TI…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

数据库记录:

7d1936776f32c2ffef31a0db60195e95.png

MYSQL查询不同用户 最新的一条记录

方法1:查询出结果后将时间排序后取第一条(只能取到一条,并且不能查询不同客户的记录)

SELECT CUSTOMER_ID,CONTENT,MODIFY_TIME FROM `service_records` ORDER BY MODIFY_TIME DESC LIMIT 1;

查询结果:

c42eda20f3b8fd7db5a5c1f159cc291a.png

方法2:查询排序后group by(先按照MODIFY_TIME把顺序按照降序排列好,排列好的值作为子查询a,然后再根据子查询a按照CUSTOMER_ID分组)

SELECT CUSTOMER_ID,CONTENT,MODIFY_TIME FROM

(SELECT CUSTOMER_ID,CONTENT,MODIFY_TIME FROM `service_records` ORDER BY MODIFY_TIME DESC) a

GROUP BY a.CUSTOMER_ID

查询结果为:

a1e17a889e1669a876199d5c5f9a7f95.png

group by 可以根据group by 的参数列分组,但返回的结果只有一条,仔细观察发现group by是将分组后的第一条记录返回。时间在查询后默认是顺序排列,因此需要先将时间倒序排列,方可取出距离当前最近一条。这样查询实际上还是进行了两次查询。

方法三:将max() 方法和group by结合使用

SELECT CUSTOMER_ID,CONTENT,MAX(MODIFY_TIME) FROM `service_records` GROUP BY CUSTOMER_ID

查询结果为:

7494ab557b215d51f7ed9cfc73631f17.png

和方法二对比发现,该写法是错误的,虽然MODIFY_TIME取的值是最大值,是正确的,但是其他的值取的都是在不同的CUSTOMER_ID下的第一条记录,所以MODIFY_TIME列的值和其他列的值不匹配,不是同一条记录。。。所以正确的写法是第二种,先正确的排好序,然后再利用group by 分组

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196102.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android studio java和xml_android studio闪退

    android studio java和xml_android studio闪退Program:         $JDKPath$\bin\javah.exeParameters:      -classpath$OutputPath$;$ModuleSdkPath$/platforms/android-25/android.jar-jni-d$ModuleFileDir$/src/main/jni$FileClass$

    2022年9月24日
    1
  • Quickstart for Python/WSGI applications「建议收藏」

    Quickstart for Python/WSGI applications

    2022年2月21日
    33
  • 跟我一起写 Makefile(二)

    跟我一起写 Makefile(二)三、make是如何工作的在默认的方式下,也就是我们只输入make命令。那么,   1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。   2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。   3、如果edit文件不存在,或是edit所依赖的后面的.o文件的文

    2022年5月4日
    40
  • form factor_perform和performance的区别和用法

    form factor_perform和performance的区别和用法performSelector:withObject:是在iOS中的一种方法调用方式。他可以向一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以这也是runtime的一种应用方式。performSelector和直接调用方法的区别就在与runtime。直接调用编译是会自动校验。如果方法不存在,那么直接调用在编译时候就能够发现,编译器会直接报错。但是使用performSelec…

    2025年8月2日
    3
  • java按位取反运算符_java源码补码

    java按位取反运算符_java源码补码一直纠结于位运算中的按位取反以及原码、反码、补码之间的各种关系,反正各种混淆各种懵逼。经过一小段时间才弄明白这个别人觉得很容易的问题。可能还是我基础不太好。位运算是对操作数以二进制为单位的进行的运算,位运算符则用于位运算。位运算符包括&(按位与)、|(按位或)、^(按位异或)、~(按位取反)等等…位运算符操作数可以是整型或字符型,结果为整型。按位取反是对补码进行运算,当运算完后,再将补…

    2022年8月14日
    7
  • java引用变量存放在哪_java成员变量存储在哪个内存区域

    java引用变量存放在哪_java成员变量存储在哪个内存区域我们说常量,静态变量存放在方法区中,方法中的临时变量,存放到Java虚拟栈中。有人问,那全局变量*(对象)存放在哪里.其实全局变量就是参考文章中所说的class的字段,就是指全局变量,它是存放在方法区中的。e)方法区与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。在Class文件中除了类的字段、方法、接…

    2022年8月21日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号