国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

解決mysql錯誤:Subquery returns more than 1 row問題

瀏覽:51日期:2023-05-05 10:11:53
目錄
  • mysql錯誤:Subquery returns more than 1 row
    • 報錯如下
    • 解決方法
  • 錯誤代碼:1242 Subquery returns more than 1 row
    • 錯誤描述
    • 錯誤原因
    • 解決辦法
  • 總結(jié)

    mysql錯誤:Subquery returns more than 1 row

    mysql報錯:SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row

    錯誤的意思是指子查詢結(jié)果多于一行。

    報錯如下

    解決方法

    以這個sql語句為例

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

    1)如果是寫入重復,去掉重復數(shù)據(jù)。然后寫入的時候,可以加邏輯判斷(php)或者外鍵(mysql),防止數(shù)據(jù)重復寫入。

    (我實際開發(fā)中遇到的就是數(shù)據(jù)重復寫入的情況,在數(shù)據(jù)庫查到有相同的數(shù)據(jù)兩條,這不符原本的原本的業(yè)務(wù)需求)

    2)在子查詢條件語句加limit 1,找到一個符合條件的就可以了

    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);

    錯誤代碼:1242 Subquery returns more than 1 row

    錯誤描述

    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...

    錯誤代碼: 1242Subquery returns more than 1 row

    執(zhí)行耗時 : 0.009 sec傳送時間 : 0.002 sec總耗時 : 0.012 sec

    錯誤原因

    在編寫查詢SQL語句時,其中有個字段是從另一張表里獲取

    select t.id,(select num from t_user_info where id = stuNo) as amount from t_stu_info t left join t_user_info t0on 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 t0on t0.id = t.stuNo

    總結(jié)

    以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持。

    標簽: MySQL
    主站蜘蛛池模板: 荆州市| 克什克腾旗| 南康市| 宁夏| 武乡县| 高台县| 汽车| 托克逊县| 沂水县| 秦皇岛市| 南宫市| 贵州省| 营口市| 新营市| 北海市| 东城区| 鄢陵县| 道孚县| 仁怀市| 嘉黎县| 西和县| 田阳县| 如皋市| 临邑县| 晋江市| 嘉义市| 图片| 汕尾市| 灌云县| 边坝县| 扬中市| 东安县| 正定县| 内乡县| 花垣县| 城口县| 临桂县| 屏东市| 灵武市| 得荣县| 荔浦县|