1、通过条件查询出上一条与下一条

sql说明:本表关联本表,然后通过其中一个表,查询出对应的条件,再用另外一个表求出上一条与下一条的数据,求出来的数据是多条的

SELECT

ua.id,

ua.wx_pages,

ua.wx_pages_source,

uaa.id as uaa_id,

uaa.wx_pages,

uaa.wx_pages_source

FROM

ds_user_action AS ua

JOIN ds_user_action AS uaa ON ua.user_id = uaa.user_id // 用会员ID作为关联条件,两张表出来的数据是不同的,其中一张表,专门根据条件用来查询,另外一个没有加条件的表,则用来求上一条与一条数据,切记,不要用主键ID

WHERE

uaa.wx_pages LIKE '%shopping/checkout%'

AND uaa.wx_pages_source LIKE '%goods/goods%'

AND uaa.user_id = 179135

AND ua.id = (

SELECT

max(id)

FROM

ds_user_action as uaaa

WHERE

uaaa.id < uaa.id

AND uaaa.user_id = 179135

)

2、CASE WHEN 判断条件 THEN 值 ELSE 被动值 END 的结果,判断条件排序

(1)ELSE用NULL,count(NULL) == 0 , count(0) == 1

SELECT

  ld.*, ldt.order_state,

  ldt.uid,

  count(

  CASE

  WHEN (ldt.order_state = 1) && (ldt.uid = 179135) THEN

  1

  ELSE

  NULL

  END

) AS onum

FROM

ds_lucky_draw AS ld

LEFT JOIN ds_lucky_deposit AS ldt ON ld.ld_id = ldt.lid

WHERE

ld.`status` = 1

AND ld.lottery_time >= 1564109614

GROUP BY

ld.ld_id

ORDER BY

onum DESC,

ld.lottery_time DESC

(2)这个直接就用的case判断

SELECT

  ld.*, ldt.order_state,

  g.goods_name,

  ldt.uid,

  CASE

  WHEN (ldt.order_state = 1) && (ldt.uid = '.$user_id.') THEN

  1

  WHEN ld.start_time <= 1564625127 && ld.lottery_time > 1564625127 THEN

  2

  WHEN ld.start_time >= 1564625127 THEN

  3

  ELSE

  0

END onum

FROM

ds_lucky_draw AS ld

LEFT JOIN ds_lucky_deposit AS ldt ON ld.ld_id = ldt.lid

LEFT JOIN ds_goods AS g ON ld.goods_id = g.goods_id

WHERE

ld.`status` = 1

AND ld.lottery_time >= 1564625127

GROUP BY

ld.ld_id

ORDER BY

onum DESC,

ld.sort DESC;

3、求出max与本条纪录字段

SELECT

  lba_id,

  price,

  add_time

FROM

ds_live_broadcast_auction AS lba_a

WHERE

lba_a.price = (

  SELECT

    max(price)

  FROM

  ds_live_broadcast_auction AS lba_b

ORDER BY add_time asc

)

limit 1; # 如果价格有多条相同的情况

后续还会更新,谢谢各们亲关注!

mysql操作遇到的坑(第二版)的更多相关文章

  1. mysql操作遇到的坑(第一版)

    1.当我们要统计数据表数量时,如果遇到多表查询,会出现一个主表对应多个子表的维度,我们会用到group by,但是不要再用统计函数去操作数据,因为统计还是会统计原数据 案例 SELECT sum(`o ...

  2. MySQL管理之道,性能调优,高可用与监控(第二版)pdf下载

    MySQL管理之道,性能调优,高可用与监控(第二版) 书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和新知识的拓展,同时也针对运维人员.DBA等相关工作者会遇到的有代表性的疑难问题给出了 ...

  3. 利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)

    利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版) CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JS ...

  4. centos LAMP第四部分mysql操作 忘记root密码 skip-innodb 配置慢查询日志 mysql常用操作 mysql常用操作 mysql备份与恢复 第二十二节课

    centos  LAMP第四部分mysql操作  忘记root密码  skip-innodb 配置慢查询日志 mysql常用操作  mysql常用操作 mysql备份与恢复   第二十二节课 mysq ...

  5. SparkR链接mysql数据库(踩坑)

    本文主要讲述sparkR链接Mysql的过程和坑. SparkR的开发可以用RStudio工具进行开发,连接spark可以通过RStudio界面中的Connections进行配置连接;具体方法这里不做 ...

  6. 一套简单的web即时通讯——第二版

    前言 接上一版,这一版的页面与功能都有所优化,具体如下: 1.优化登录拦截 2.登录后获取所有好友并区分显示在线.离线好友,好友上线.下线都有标记 3.将前后端交互的值改成用户id.显示值改成昵称ni ...

  7. mysql : mysql 5.6.13 免安装版配置

    前言:真正用到mysql是在公司的第二个项目下,具体的一些在之前的博客文章(http://www.cnblogs.com/zhengzeze/p/5623440.html)中也提到了,其中涉及到,免安 ...

  8. Javascript DOM 编程艺术(第二版)读书笔记——基本语法

    Javascript DOM 编程艺术(第二版),英Jeremy Keith.加Jeffrey Sambells著,杨涛.王建桥等译,人民邮电出版社. 学到这的时候,我发现一个问题:学习过程中,相当一 ...

  9. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

随机推荐

  1. HDU- 6437.Videos 最“大”费用流 -化区间为点

    参考和完全学习:http://www.cnblogs.com/xcantaloupe/p/9519617.html HDU-6437 题意: 有m场电影,电影分为两种,看一场电影可以得到对应的快乐值. ...

  2. codeforces 284 C. Cows and Sequence(线段树)

    题目链接:http://codeforces.com/contest/284/problem/C 题意:就是给出3个操作 1)是将前i 个数加x 2)在数组最后添加一个数x 3)删除数组最后的那个数 ...

  3. CentOS7.6中mysql实践

    cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 使用:yum -y install mysql mysql-server 安装 ...

  4. mysql:外键

    mysql:外键 转自:https://www.cnblogs.com/brucemengbm/p/6897410.html 一个班级的学生个人信息表: 什么是外键 在设计的时候,就给表1加入一个外键 ...

  5. 【第十五篇】easyui datagrid的列编辑,同时插入两张表的数据进去

    看图说话. 需求:插入两张表,上面的表单是第一张表的内容,下面的两个表格是第二张详情表的内容,跟第一张表的id关联 第二张表有一个列是需要用户手动填写添加的. 国际惯例,上代码 <div id= ...

  6. 大数据平台搭建 - cdh5.11.1 - hue安装及集成其他组件

    一.简介 hue是一个开源的apache hadoop ui系统,由cloudear desktop演化而来,最后cloudera公司将其贡献给了apache基金会的hadoop社区,它基于pytho ...

  7. 作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?

    我最近几年一直在做技术面试官,除了面试有一定工作经验的社会人员外,有时还会面试在校实习生和刚毕业的大学生.同时,我也在学校里做过兼职讲师,上些政府补贴课程(这些课程有补贴,学生不用出钱),所以我会在不 ...

  8. FJUT2019暑假周赛三部分题解

    A本来想改到q<1e5,让你们预处理的,然后想了哈作为个逆元模板题吧= =,做不出来自行反思. B贴个题面 因为只有一次机会,那么也就是两点分布期望E = p了,先说说大家的做法,先求出每个n的 ...

  9. IPMI在linux下常用命令

    ipmitool lan print 1 ipmitool lan set 1 ipaddr 192.168.0.12 ipmitool lan set 1 netmask 255.255.255.0 ...

  10. Docker笔记(十一):Dockerfile详解与最佳实践

    Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像.本文介绍Dockerfile的常用指令及相应的最佳实践建议. 1. 理解构建上下文 ...