mysql错误:Subquery returns more than 1 row

  • Mysql报错
    • 基于两个表信息
  • 解决方案:
    • 方案一:limit 1
    • 方案二:group_concat()
    • 方案三: any和some
  • 参考例子

Mysql报错

Mysql报错:1242 - Subquery returns more than 1 row
错误的意思是指子查询结果多于一行。报错如下:

mysql> select name from tb_students_info-> where dept_id=-> (select dept_id-> from tb_departments-> where dept_name='Computer');
1242 - Subquery returns more than 1 row

基于两个表信息

mysql> select * from tb_departments;
+---------+-----------+-----------+
| dept_id | dept_name | dept_type |
+---------+-----------+-----------+
|       1 | Computer  | A         |
|       2 | Chinese   | B         |
|       3 | Math      | A         |
|       4 | Computer  | A         |
|       5 | Computer  | A         |
|       6 | Math      | B         |
|       7 | Economy   | C         |
|       8 | Chinese   | B         |
|       9 | Economy   | A         |
|      10 | History   | B         |
|      11 | Economy   | A         |
+---------+-----------+-----------+
11 rows in setmysql> select * from tb_students_info;
+---------+--------+-----+-----+--------+---------------------+
| dept_id | name   | age | sex | height | login_data          |
+---------+--------+-----+-----+--------+---------------------+
|       1 | Dany   |   1 | F   |    160 | 2015-09-10 00:00:00 |
|       2 | Green  |   3 | F   |    150 | 2015-10-22 00:00:00 |
|       3 | Henry  |   4 | M   |    166 | 2015-05-31 00:00:00 |
|       4 | Jane   |   5 | F   |    124 | 2015-01-15 00:00:00 |
|       5 | Jim    |   2 | M   |    145 | 2015-03-20 00:00:00 |
|       6 | John   |  23 | M   |    156 | 2015-04-01 00:00:00 |
|       7 | Lily   |   2 | F   |    171 | 2015-05-07 00:00:00 |
|       8 | Susan  |   4 | F   |    182 | 2015-06-10 00:00:00 |
|       9 | Thomas |   3 | M   |    196 | 2015-07-05 00:00:00 |
|      10 | Tom    |   4 | M   |    201 | 2015-08-23 00:00:00 |
+---------+--------+-----+-----+--------+---------------------+

解决方案:

方案一:limit 1

mysql> select name from tb_students_infowhere dept_id =(select dept_idfrom tb_departmentswhere dept_name='Computer' limit 1
);
+------+
| name |
+------+
| Dany |
+------+
1 row in set

但对于多行需求,仍不满足需求。

方案二:group_concat()

mysql> select name from tb_students_infowhere dept_id =
(select group_concat(dept_id)from tb_departmentswhere dept_name='Computer'
);
+------+
| name |
+------+
| Dany |
+------+
1 row in setmysql> select group_concat(dept_id)from tb_departmentswhere dept_name='Computer';
+-----------------------+
| group_concat(dept_id) |
+-----------------------+
| 1,4,5                 |
+-----------------------+
1 row in set

显示结果:还只是一个。不满足需求。
报错注入遇到ERROR 1242 (21000): Subquery returns more than 1 row解决方案
http://www.bubuko.com/infodetail-2690543.html?

方案三: any和some

  • SOME相当于ANY的别名
- //ANY
select name from tb_students_infowhere dept_id =any
(select dept_idfrom tb_departmentswhere dept_name='Computer'
);
+------+
| name |
+------+
| Dany |
| Jane |
| Jim  |
+------+
3 rows in set//SOME
select name from tb_students_infowhere dept_id =some
(select dept_idfrom tb_departmentswhere dept_name='Computer'
);
+------+
| name |
+------+
| Dany |
| Jane |
| Jim  |
+------+
3 rows in set

经测试,方案三 any和some方式,与本次开发需要符合。

参考例子

MySQL出错信息: Subquery returns more than 1 row及其解决方法
https://www.cnblogs.com/dmcs95/p/10777013.html
关于mysql错误:Subquery returns more than 1 row
https://blog.csdn.net/ly_dengle/article/details/78028166

mysql错误:Subquery returns more than 1 row相关推荐

  1. mysql return more than 1 row_关于mysql错误:Subquery returns more than 1 row

    [包含图片] mysql报错:SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row 错误的意思是指 ...

  2. mysql错误消息1_MySQL出错信息: Subquery returns more than 1 row及其解决方法

    - 问题: 查询当"课程" 等于子查询里面的课程信息 - 出错指令: [Err] 1242 - Subquery returns more than 1 row 开始出错时的SQL ...

  3. Mysql递归调用,报错:Subquery returns more than 1 row

    在学习Mysql递归调用中,编写的 递归SQL 在 Navicat 中运行正常,但在 Java项目中 mapper.xml 文件中确报错:Subquery returns more than 1 ro ...

  4. Mysql ERROR 1242 (21000): Subquery returns more than 1 row

    mysql> select count(*) from t1 where t1.id = (select t2.id from t2); ERROR 1242 (21000): Subquery ...

  5. 出现java.sql.SQLException: Subquery returns more than 1 row错误的原因,解决方法

    今天在使用嵌套查询语句时出现这个错误,也很好解决,在这里记录一下. 例如这个语句: <select id="findSongBySheetId" resultType=&qu ...

  6. 数据库常见问题汇总Subquery returns more than 1 row

    数据库常见问题汇总: 1.错误:Subquery returns more than 1 row 的解决办法 以MySQL为例: 1.错误:Subquery returns more than 1 r ...

  7. single-row subquery returns more than one row

    错误描述:single-row subquery returns more than one row 原因: 子查询可能查到两个或以上的相同数据 解决方案:加一个distinct,效果:去重 (仅自己 ...

  8. java.sql.SQLException: Subquery returns more than 1 row

    java.sql.SQLException: Subquery returns more than 1 row错误:你的子查询中返回了多条数据 一.场景:子查询出现多个 结果: 二.解决方法 在重复写 ...

  9. Subquery returns more than 1 row

    在mysql中做查询时 爆错 Subquery returns more than 1 row 百度了一下大概是子查询时返回来多行数据,基本上解决方案如出一辙 达不到我想要的效果 百度解决方案 一般为 ...

最新文章

  1. Blog 081018
  2. super icon
  3. 2016/7/29作业
  4. SpringBoot-SpringCloud-版本对应关系
  5. 适用于ps的Raw格式图像插件:AdobeCamera Raw13 Mac中文版
  6. Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法
  7. 【转载】关系型数据库设计范式
  8. vuex mutations_Vuex 的基本知识总结
  9. 牛客网暑期ACM多校训练营(第三场) J Distance to Work 计算几何求圆与多边形相交面积模板...
  10. 深度学习2.0-38.RNNCell使用-RNN Layer
  11. 全网首发:Could NOT find JNI (missing: JAVA_AWT_INCLUDE_PATH) 解决办法
  12. LINUX下载编译libav
  13. 360浏览器html在哪儿,360浏览器的收藏夹在哪_如何找到360浏览器收藏夹路径位置...
  14. Systrace 响应速度实战 1 :了解响应速度原理
  15. 如何下载风云卫星数据?
  16. TSL1.0升级到TSL1.2遇到的问题
  17. 题解 UVA1449 【Dominating Patterns】
  18. 获取电信光猫超级密码 获取宽带账号密码 获取公网ip
  19. Android 仿京东淘宝多规格选择
  20. 学历对做软件测试的影响

热门文章

  1. ...mapMutations的使用
  2. linux搭建DNS域名解析服务
  3. 部署LNMP并利用LNMP搭建wordpress论坛
  4. 联想小新一键恢复小孔_联想小新笔记本如何一键恢复出厂设置_联想小新air恢复出厂设置教程...
  5. 践行数字化工厂,用友网络助力宝舜实现智能制造
  6. 一年卖出20.4亿颗图像传感器,这家公司上市首日股价大涨145%
  7. 计算机知识竞赛策划案,计算机知识竞赛策划书范文
  8. python中什么是一个无序的不重复元素序列_无序Python集的“顺序”
  9. 世界危机四伏 难道2012真的存在
  10. 预推免的内耗---还好上岸了,要不就淹死了