2011-01-05 7 views
1

フィールドの1つに値を持つデータベースがあります。状況によっては、初期値を削除してNULLに置き換える必要があります。MySQLにNULL値をColdfusionから挿入する

空のフィールドにNULL値を挿入するにはどうすればよいですか?

ありがとうございます。

答えて

2

あなたはこのようなものだクエリを記述します

<cfquery name="queryName" datasource="dsn"> 
    UPDATE tableName SET fieldName = NULL 
    WHERE recordId = <cfqueryparam cfsqltype="cf_sql_integer" value="#recordId#" /> 
</cfquery> 

また、空の文字列とNULL値との差があります。 NULLについて覚えておくべきことは、NULL以外のものと同じではないということです。しかし、それもではなく、はNULLでない値と同じです。

ID  VALUE 
1  15 
2  NULL 
3  30 

このクエリを実行します:あなたがあなたのテーブル内の3つのレコード持っているのであれば

SELECT ID from tableName where value != 15 

を、あなたは唯一の確実レコード2が結果セットに含まれるようにする方法があるレコードの3を取得します以下のようなあなたのクエリを変更する:

SELECT ID from tableName where coalesce(value,16) != 15 

を合体する目的は、NULLネスのための最初のパラメータをチェックして、最初のパラメータがNULLの場合、代わりに二番目のパラメータの値を使用することです。上記の例では、2番目のパラメータとして '16'を入れましたが、比較しているものと同じでない限り(この場合は15)、任意の値を使用できます。

+1

cfqueryparamタグにもnull属性があります。これは、値が動的で、次のようなことができる場合に便利です。set col =

+0

良い点!私はWHERE句でそれを使って問題を抱えていました(それは私が試したCFバージョンで動作するようには見えませんが)UPDATEとINSERTクエリのSET句やVALUES句にはうまくいきますそれぞれ)。使い方は良いですが、何が何をしているのか、いつ働いているのか、理解していないのかを理解してください。 =) –

関連する問題