转载声明:文章来源https://blog.csdn.net/qq_36306340/article/details/78903051
工作中遇到一些mysql问题,有的需要多条件多表查询等,现在整理出来。
问题(一)如下:
查询出今天办公室人员的订餐人员
qsyz_app_user用户表
userid role
qsyz_shop_order订单表
user_id status date
role 为“办公室”
status 为“支付成功”
日期要求为今天
实现语句
select * from qsyz_app_user a,qsyz_shop_order b where a.userid=b.user_id and b.order_status='支付成功' and b.create_date='2017-12-25 16:05:05';
按日期模糊查询出结果
select a.nickname from qsyz_app_user a,qsyz_shop_order b
where a.userid=b.user_id
and a.role='办公室'
and b.order_status='支付成功'
and b.create_date like '%2017-12-25%';
mysql like的写法
like concat('%',#{param},'%') 或者 like '%${param}%' ,推荐使用前者,可以避免sql注入。
问题(二)如下:
从版本表中按照手机类型,找出版本号最大的版本
版本表
mysql> select * from qsyz_app_version;
+-----------+--------------+-------------+--------------+-------------+--------------+----------------------------------------------------+------------+
| id | version_name | version_num | version_size | create_time | version_text | down_url | phone_type |
+-----------+--------------+-------------+--------------+-------------+--------------+----------------------------------------------------+------------+
| 440289813 | 1.1.2 | 20171205 | 0 | 2017-12-05 | 56 | http://192.168.1.101:8080/images/1.JPEG | android |
| 440378169 | 1.1.2 | 20171109 | 0 | 2017-12-05 | 565 | http://192.168.1.101:8080/images/2.JPEG | android |
| 749696543 | 1.1.0 | 1 | 0 | 2017-10-23 | ghkfadjghkl | http://192.168.2.112:8080/images/app-debug.apk | android |
| 750259190 | 21 | 23 | 0 | 2017-10-23 | 家居空间 | http://192.168.2.112:8080/images/ConstantUtil.java | android |
+-----------+--------------+-------------+--------------+-------------+--------------+----------------------------------------------------+------------+
4 rows in set
实现语句
select * from qsyz_app_version where version_num=(select max(version_num)from qsyz_app_version WHERE phone_type='android
');
问题(三)如下:
从订单详情表中查询出用户的订单详情,按照倒叙排列
订单详情表:
实现语句
SELECT * FROM qsyz_wallet_detail WHERE userId=#{userId} order by tradeDate DESC
问题(四)如下:
1.情景:返回店铺的评论列表里,要求实现分页。
2.因为店铺评论列表是个动态的,每时每刻都有可能有人在评论,所以如果安装页数返回的话有可能会使数据重复或数据漏掉。
3.方法:传入一个评论id,下次查询的时候,查询这个id后面的十条数据(id要有序,不然很麻烦)
例子
实现语句
mysql> select id,name from user where id>'1' order by id asc limit 2;
文采四溢,大佬这是被耽搁的文学家啊!