mysql limit 处理多个返回结果

今天项目中又遇到一个 mysql 查询数据的问题,简单说就是当你想处理一个查询(可能返回多个记录)时,可以用

limit 来解决一些问题。

eg:

select a.*, (select b.id from table_b b where .......) as t1 from table_a a

如果:(select b.id from table_b b where .......) 返回多条结果时,将出错。(可否在t1中将返回的结果拼成一个字符串?在前台再去根据规则解析呢? 想过这个问题 。不过还可以用limit来达到这种要求。)


解决如下:

select tt.*
,(select s.name from tbl_rel_route_has_destination rhd,tbl_obj_scene s  where rhd.sceneid=s.id and rhd.routeid= (select sp.routeid from tbl_obj_sale_plan sp where sp.id=tt.planid) limit 1  ) as des1
,(select s.name from tbl_rel_route_has_destination rhd,tbl_obj_scene s  where rhd.sceneid=s.id and rhd.routeid= (select sp.routeid from tbl_obj_sale_plan sp where sp.id=tt.planid) limit 1,1) as des2
from tbl_obj_travel_team tt
where tt.cityid = (select gov.cityid from tbl_obj_government gov ,tbl_obj_user u where u.governmentid=gov.id and u.id = 1)

若 limit 1,1 即查询结果的第2条数据 不存在,将返回null,前台再做判断.(达到目的了)

limit 用法:

第一个参数:起始偏移量(0开始)。

第二个参数:要限制查询的 记录数。

注意问题:

1.若只有一个参数。eg: limit 10        返回前10条。limit n 相当于 limit 0,n

2.二个参数                eg: limit 10,10  返回11-20条。

3.为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为  -1. limit 10,-1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中,使用LIMIT语句可以限制查询结果的数量。引用指出,在LIMIT语句中,使用较大的offset值会导致查询变慢。这是因为LIMIT 1000,10会先取出1000条数据,然后抛弃前1000条,这个过程耗费更多间。为了优化这个问题,可以基于主键进行限制。引用提到,当offset过大,会引发深度分页问题,目前MySQL还没有很好的解决方法,只能通过限制查询数量或分批获取的方式来规避。在实际查询中,常常使用LIMIT语法来返回前几条或中间某几行数据,其语法如下:SELECT * FROM table_name LIMIT [offset,] rows。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Mysql优化系列之limit查询](https://blog.csdn.net/S_ZaiJiangHu/article/details/125821319)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MySQL中的limit用法详解](https://blog.csdn.net/java123456111/article/details/124583183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值