mysql用in报错_Mysql子查询IN中使用LIMIT
学习下Mysql子查询IN中使用LIMIT的方法。
这两天项目里出了一个问题,mysql 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
) www.jbxue.com
结果报错了
当时没注意报的什么错误,只是看到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
)
LIMIT 0,10
这样没有报错,莫离以为OK了,但是运行后发现,数据有问题
和单纯的读出申请表的内容不一样,才发现LIMIT的位置放错了,于是又把LIMIT发在IN里,结果报错如下
This version of MySQL doesn't yet support ‘LIMIT & IN/ALL/ANY/SOME subquery'
细看才知道,IN里不支持LIMIT。那怎么办呢?www.jbxue.com
于是度娘后得知,在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`
)
运行后,问题解决!
mysql用in报错_Mysql子查询IN中使用LIMIT相关推荐
- mysql not in报错_mysql从5.7升级到8.0查询报错Expression #2 of SELECT list is not in GROUP BY...
报错信息: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sss. ...
- mysql的count报错_Mysql报错注入原理分析(count()、rand()、group by)
报错需要count(*),rand().group by,三者缺一不可 前提:当行数大于等于3行时才会报错. 原链接:https://www.cnblogs.com/xdans/p/5412468.h ...
- mysql 绕过select报错_MySQL注射绕过技巧(三)
在测试一次注入的时候发现过滤了逗号 所以找到这个思路 第一次遇到的时候是看key哥挖洞 遇到后就想记录下来 正文 过滤了逗号 利用join来逐步查询 select*from(select 1)a ...
- mysql语句delete报错_MySQL delete语句的问题
以前遇到过几次这个问题,都觉得问题不大,所以没有记录,但是这次又遇到了,而且没有第一时间想起来,所以还是有记录下的必要 MySQL delete语句使用子查询操作同一张表的时候会抛出 DELET ...
- mysql的count报错_mysql的floor()报错注入方法详细分析
刚开始学习sql注入,遇见了 select count(*) from table group by floor(rand(0)*2); 这么条语句.在此做个总结. (更好的阅读体验可访问 这里 ) ...
- mysql的count报错_Mysql报错注入原理分析count、rand、groupby
0x00 疑问 一直在用mysql数据库报错注入方法,但为何会报错? 百度谷歌知乎了一番,发现大家都是把官网的结论发一下截图,然后执行sql语句证明一下结论,但是没有人去深入研究为什么rand不能和o ...
- mysql 3种报错_MySQL读取Binlog日志常见的3种错误-阿里云开发者社区
MySQL读取Binlog日志常见的3种错误 mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4' 当我们在my. ...
- mysql严格模式 报错_mysql严格模式
mysql严格模式 严格模式例子1 2 3 4 5 6 7DB::table('table_name') ->where('status', 1) ->select(DB::raw('su ...
- mysql安装开始报错_MYSQL安装报错 -- 出现Failed to find valid data directory.
运行环境:windows10 数据库版本:mysql.8.0.12 安装方式:rpm包直接安装 问题描述: mysql初始化的时候找不到对应的数据库存储目录 报错代码: 2018-10-13T03:2 ...
最新文章
- win下的输入流结束符
- Linux 下各个目录的作用及内容
- 兰蔻和雅诗兰黛哪个好_兰蔻、雅诗兰黛、修丽可,这些大牌护肤品,你会选择谁?...
- JavaScript页面校验
- 【tensorflow】tf-tf.where(condition, x, y, name)
- 详解 Too many open files
- bootbox显示中文的按钮
- 前端学习(3000):vue+element今日头条管理--远程仓库的issue
- embedding亦福亦祸?XGBoost与LightGBM的新机遇
- 三面阿里竟然败在了 volatile 关键字上
- listview添加item动画
- Tensorflow API解析 -目录
- Revit二次开发: 文件损坏
- 【S-V信道】基于毫米波的5G通信S-V信道模型仿真
- mybatis缓存的一些问题
- 2019级软件工程应用与实践-人工智能快递柜(代码分析11)
- Factory method 'springSecurityFilterChain' threw exception
- 华科计算机学院专业课,华科计算机考研专业课有哪些
- AVPlayer就可以播放在线音频
- WZOI-359字符串哈希
热门文章
- C#基础之 集合-队列
- Java面试笔试题整理
- django 框架中应用 redis 集群(亲测)
- CSS中提升优先级属性!important的用法总结
- C语言运行界面字体,C语言实现图形界面登陆窗口.docx
- Linux基础知识(1)
- mysql8.0 linux 安装教程_linux下mysql8.0安装详细教程
- 服务器输入字符在客户端显示,管理 Unicode 服务器与非 Unicode 客户端之间的数据转换...
- java excel转word表格_java利用poi生成/读取excel表格、生成word
- small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数