sql >> データベース >  >> RDS >> Mysql

MySQLは、条件が真の場合にのみ挿入します

    WHEREを使用できます このための条項。 INSERTVALUESをINSERTSELECTに変換し、WHEREを追加します 条項。

    たとえば、

    INSERT INTO fields (field_name, control_type_id, needs_approval)
    SELECT
    'Array Photos', 3, 0
    WHERE Condition;
    

    Conditionがtrueの場合、行が挿入されます。条件がfalseの場合、SELECT はゼロ行を返すため、INSERTはゼロ行を挿入します。

    構文エラーが原因で上記のクエリが実行されない場合は、@ spencer7593で説明したように、FROM DUALを追加できます。 。

    INSERT INTO fields (field_name, control_type_id, needs_approval)
    SELECT
    'Array Photos', 3, 0
    FROM DUAL
    WHERE Condition;
    

    DUAL テーブルは基本的にダミーテーブルであり、予測可能なコンテンツがあり、常に少なくとも1つの行があると信頼できます 。



    1. mySQLで動的WHERE句を作成する

    2. org.h2.jdbc.JdbcSQLException:列IDが見つかりません

    3. RマークダウンSQLチャンクでSQLパラメーターを使用する方法

    4. MySQL groupwise MAX()は予期しない結果を返します