解決mysql錯(cuò)誤:Subquery?returns?more?than?1?row問(wèn)題
mysql錯(cuò)誤:Subquery returns more than 1 row
mysql報(bào)錯(cuò):SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row
錯(cuò)誤的意思是指子查詢(xún)結(jié)果多于一行。
報(bào)錯(cuò)如下

解決方法
以這個(gè)sql語(yǔ)句為例
select * from table1 where table1.colums=(select columns from table2);
1)如果是寫(xiě)入重復(fù),去掉重復(fù)數(shù)據(jù)。然后寫(xiě)入的時(shí)候,可以加邏輯判斷(php)或者外鍵(mysql),防止數(shù)據(jù)重復(fù)寫(xiě)入。
(我實(shí)際開(kāi)發(fā)中遇到的就是數(shù)據(jù)重復(fù)寫(xiě)入的情況,在數(shù)據(jù)庫(kù)查到有相同的數(shù)據(jù)兩條,這不符原本的原本的業(yè)務(wù)需求)
2)在子查詢(xún)條件語(yǔ)句加limit 1,找到一個(gè)符合條件的就可以了
select * from table1 where table1.colums=(select columns from table2 limit 1);
3)在子查詢(xún)前加any關(guān)鍵字
select * from table1 where table1.colums=any(select columns from table2);
錯(cuò)誤代碼:1242 Subquery returns more than 1 row
錯(cuò)誤描述
1 queries executed, 0 success, 1 errors, 0 warnings
查詢(xún):SELECT t.id, DATE_FORMAT( t.statisTime, '%Y-%m-%d %H:%i:%s' ) statisTime, (SELECT `id` FROM t_truck_info WHERE id = t.plateId...
錯(cuò)誤代碼: 1242Subquery returns more than 1 row
執(zhí)行耗時(shí) : 0.009 sec傳送時(shí)間 : 0.002 sec總耗時(shí) : 0.012 sec
錯(cuò)誤原因
在編寫(xiě)查詢(xún)SQL語(yǔ)句時(shí),其中有個(gè)字段是從另一張表里獲取
select t.id,(select num from t_user_info where id = stuNo) as amount from t_stu_info t left join t_user_info t0 on t0.id = t.stuNo
查詢(xún)出num是多條數(shù)據(jù),而外層查詢(xún)結(jié)果是要求num為一條數(shù)據(jù)
解決辦法
select t.id,(select sum(num) from t_user_info where id = stuNo) as amount from t_stu_info t left join t_user_info t0 on t0.id = t.stuNo
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
教你如何通過(guò)日志文件恢復(fù)MySQL數(shù)據(jù)
Binlog日志是二進(jìn)制日志文件,有兩個(gè)作用,一個(gè)是增量備份,另一個(gè)是主從復(fù)制,即主節(jié)點(diǎn)維護(hù)一個(gè)binlog日志文件,從節(jié)點(diǎn)從binlog中同步數(shù)據(jù),也可以通過(guò)binlog日志來(lái)恢復(fù)數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于如何通過(guò)日志文件恢復(fù)MySQL數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-02-02
MySQL中的排序函數(shù)field()實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于MySQL中排序函數(shù)field()的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
mysql8如何設(shè)置不區(qū)分大小寫(xiě)ubuntu20
這篇文章主要介紹了mysql8如何設(shè)置不區(qū)分大小寫(xiě)ubuntu20問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Mysql連接join查詢(xún)?cè)碇R(shí)點(diǎn)
在本文里我們給大家整理了一篇關(guān)于Mysql連接join查詢(xún)?cè)碇R(shí)點(diǎn)文章,對(duì)此感興趣的朋友們可以學(xué)習(xí)下。2019-02-02
MySQL表排序規(guī)則不同錯(cuò)誤問(wèn)題分析
這篇文章主要介紹了MySQL表排序規(guī)則不同錯(cuò)誤問(wèn)題分析,小編覺(jué)得挺不錯(cuò)的,這里分享給大家,供各位參考。2017-10-10
MySQL中DATE_FORMATE函數(shù)使用時(shí)的注意點(diǎn)
這篇文章主要介紹了MySQL中DATE_FORMATE函數(shù)使用時(shí)的注意點(diǎn),主要是針對(duì)其內(nèi)置的字符集使用時(shí)需要轉(zhuǎn)換而進(jìn)行說(shuō)明,需要的朋友可以參考下2015-05-05

