ホームページ > データベース > mysql チュートリアル > mysql エラーを解決する方法 サブクエリが複数の行を返す

mysql エラーを解決する方法 サブクエリが複数の行を返す

PHPz
リリース: 2023-05-27 18:49:13
転載
10358 人が閲覧しました

    mysql エラー: サブクエリは複数の行を返します

    mysql エラー: SQLSTATE[21000]: カーディナリティ違反: 1242 サブクエリは複数の行を返します

    このエラーは、サブクエリの結果が複数の行であることを意味します。

    エラーは次のように報告されます

    mysql エラーを解決する方法 サブクエリが複数の行を返す

    解決策

    この SQL ステートメントを例として取り上げます

    select * from table1 where table1.colums=(select columns from table2);
    ログイン後にコピー

    1) 「Repeat」と書かれている場合は重複データを削除してください。データの書き込み時に、論理判断 (PHP) または外部キー (MySQL) を使用して、データの繰り返し書き込みを防ぐことができます。

    (実際の開発で遭遇したのは、データの書き込みが繰り返される状況でした。データベース内に同一のデータが 2 つあり、本来のビジネス要件を満たしていませんでした)

    2) 追記サブクエリの条件文に 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 サブクエリは 1 行以上を返します

    エラーの説明

    1 クエリが実行されました、0 成功、1 エラー、0 警告

    クエリ: SELECT t.id, DATE_FORMAT( t.statisTime, ' %Y-% m-%d %H:%i:%s' ) statusTime, (SELECT `id` FROM t_truck_info WHERE id = t.plateId...

    エラー コード: 1242サブクエリは 1 行以上を返します

    実行時間: 0.009 秒 送信時間: 0.002 秒 合計時間: 0.012 秒

    エラー理由

    クエリ SQL ステートメントを作成するときに、フィールドが別のフィールドから取得されるtable

    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 が 1 つのデータである必要があります

    解決策

    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 エラーを解決する方法 サブクエリが複数の行を返すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート