≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > MySQL

MySQL子查询IN中使用LIMIT应用示例

人气:399 时间:2020-07-09

这篇文章主要为大家详细介绍了MySQL子查询IN中使用LIMIT应用示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编小韵来看看吧!

这两天项目里出了一个问题,LIMIT使用后报错。

需求是这样的,我有3张表,infor信息表,mconfig物料配置表,maaply物料申请表,要求是读出申请表中哪些人申请哪些物料

于是我先是这样写的:

代码如下:

 
SELECT infor.name,infor.phone,infor.add, 
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime' 
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid 
WHERE mapply.aid 
IN ( 
SELECT aid 
FROM `mapply` where state = $state 
ORDER BY `atime` , `uid` DESC 
LIMIT 0,10 
) 

结果报错了

当时没注意报的什么错误,只是看到LIMIT什么的错误,于是改了下代码
 

代码如下:

 
SELECT infor.name,infor.phone,infor.add, 
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime' 
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid 
WHERE mapply.aid 
IN ( 
SELECT aid 
FROM `mapply` where state = $state 
ORDER BY `atime` , `uid` DESC 
) 
<pre name="code" class="sql">LIMIT 0,10</pre> 

这样没有报错,莫离以为OK了,但是运行后发现,数据有问题

和单纯的读出申请表的内容不一样,才发现LIMIT的位置放错了,于是又把LIMIT发在IN里,结果报错如下

This version of MySQL doesn't yet support ‘LIMIT & IN/ALL/ANY/SOME subquery'

细看才知道,IN里不支持LIMIT。那怎么办呢?

于是度娘后得知,在IN里再使用一张临时表,把需要的内容先查出来,

修改后代码如下:

代码如下:

 
SELECT infor.name,infor.phone,infor.add, 
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime' 
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid 
WHERE mapply.aid 
IN ( 
SELECT aid 
FROM (SELECT `aid` FROM `mapply` where state = $state 
ORDER BY `atime` , `uid` DESC 
LIMIT 0,10)AS `tp` 
) 

运行后,问题解决~~~

本文来自:http://www.q1010.com/177/9571-0.html

注:关于MySQL子查询IN中使用LIMIT应用示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:MYSQL

您可能感兴趣的文章

  • MySQL中有关SUM字段按条件统计使用IF函数(case)问题
  • MySQL存储过程中使用游标的实例
  • MySQL中如何判断当前是字符 MySQL判断字段中有无汉字
  • linux服务器清空MySQL的history历史记录 删除MySQL操作记录
  • innodb存储引擎修改表共享空间为独立空间
  • MySQL建表常用sql语句个人经验分享
  • MySQL可以使用斜线来当字段的名字
  • MySQL 跨表查询、更新、删除示例
  • 关于MySQL链接url参数的设置
  • asp+MySQL+utf8 网页出现乱码问题的解决方法
上一篇:MySQL错误代码大全
下一篇:linux服务器清空MySQL的history历史记录 删除MySQL操作记录
热门文章
  • mysql 修改character_set_server为utf-8的简单示例
  • 解决MySQL丢失文件localhost.localdomain.pid、mysql.sock的示例
  • MySQL 数据类型binary和varbinary的简单示例
  • MySQL:reading initial communication packet问题解决方法
  • MySql 表类型MYISAM、InnoDB区别
  • bash: mysql: command not found 的解决方法
  • MYSQL默认用户名ROOT修改方法
  • MySQL 常用命令菜鸟教程
  • MySQL 使用命令行新建用户并授予权限
  • MySql 数据库物理文件存放位置查看示例
  • 最新文章
    • MySQL查看死锁与解除死锁的简单示例
    • MySQL 慢查询的功能实例
    • MySQL查看死锁与去除死锁的简单示例
    • MySQL找出未提交事务的SQL的简单示例
    • MySQL锁阻塞的的简单示例
    • MySQL中的binary类型使用操作的示例
    • SQL优化教程之in与range查询的简单示例
    • MySQL 的 21 个规范、优化最佳实践!
    • MySQL 字符类型大小写敏感的简单示例
    • 解决mybatis-plus分页传入参数后sql where条件没有limit分页信息的问题

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。