亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決mysql錯(cuò)誤:Subquery?returns?more?than?1?row問(wèn)題

 更新時(shí)間:2023年05月05日 10:31:52   作者:湘道  
這篇文章主要介紹了解決mysql錯(cuò)誤:Subquery?returns?more?than?1?row問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql錯(cuò)誤:Subquery returns more than 1 row

mysql報(bào)錯(cuò):SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row

錯(cuò)誤的意思是指子查詢結(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)在子查詢條件語(yǔ)句加limit 1,找到一個(gè)符合條件的就可以了

select * from table1 where table1.colums=(select columns from table2 limit 1);

3)在子查詢前加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

查詢: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ě)查詢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

查詢出num是多條數(shù)據(jù),而外層查詢結(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)文章

最新評(píng)論