首頁 > 資料庫 > mysql教程 > mysql錯誤Subquery returns more than 1 row怎麼解決

mysql錯誤Subquery returns more than 1 row怎麼解決

PHPz
發布: 2023-05-27 18:49:13
轉載
10480 人瀏覽過

    mysql錯誤:Subquery returns more than 1 row

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

    錯誤的意思是指子查詢結果多於一行。

    報錯誤如下

    mysql錯誤Subquery returns more than 1 row怎麼解決

    解決方法

    #以這個sql語句為例 

    select * from table1 where table1.colums=(select columns from table2);
    登入後複製

    1)如果寫入重複,去掉重複資料。在寫入資料時,可以使用邏輯判斷(PHP)或外鍵(MySQL)來防止重複寫入資料。

    (我實際開發中遇到的就是資料重複寫入的情況,在資料庫查到有相同的資料兩條,這不符原本的原本的業務需求)

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

    select * from table1 where table1.colums=(select columns from table2 limit 1);
    登入後複製

    3)在子查詢前加any關鍵字

    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

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

    執行耗時  : 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 t0
    on t0.id = t.stuNo
    登入後複製

    查詢出num是多條數據,而外層查詢結果是要求num為一條數據

    ###解決方案###
    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
    登入後複製

    以上是mysql錯誤Subquery returns more than 1 row怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    相關標籤:
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    最新問題
    linux安裝mysql報錯
    來自於 1970-01-01 08:00:00
    0
    0
    0
    mysql 升級後無法重新啟動mysql服務的問題
    來自於 1970-01-01 08:00:00
    0
    0
    0
    MySQL停止進程
    來自於 1970-01-01 08:00:00
    0
    0
    0
    phpstudy不能啟動mysql?
    來自於 1970-01-01 08:00:00
    0
    0
    0
    環境中mysql
    來自於 1970-01-01 08:00:00
    0
    0
    0
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板