FIELD()関数の引数として提供される文字列のリストにNULLと他の値の組み合わせがある場合、MySQL出力にどのような影響がありますか?
FIELD()関数の引数として提供される文字列のリストにNULLと他の値の組み合わせがある場合、出力に大きな変化があります。次の例でそれを示します
例
mysql> Select FIELD('good','Ram','is','good','boy'); +---------------------------------------+ | FIELD('good','Ram','is','good','boy') | +---------------------------------------+ | 3 | +---------------------------------------+ 1 row in set (0.00 sec)
上記の出力からわかるように、検索文字列「good」のインデックス番号は3です。ここで、文字列のリストにNULLを追加すると、出力に次のように大幅な変更があります-
mysql> Select FIELD('good','Ram','is',NULL,'good','boy'); +---------------------------------------------+ | FIELD('good','Ram','is',NULL,'good','boy') | +---------------------------------------------+ | 4 | +---------------------------------------------+ 1 row in set (0.00 sec)
これは、MySQLが検索文字列をNULLと比較することも意味します。
-
MySQLの「ISNULL」と「ISNOTNULL」の利点は何ですか?
比較演算子でNULLを使用していると、意味のある結果セットが得られないことがわかっています。このような種類の比較から意味のある結果を得るには、「ISNULL」と「ISNOTNULL」を使用できます。 例 mysql> Select 10 IS NULL; +------------+ | 10 IS NULL | +------------+ | 0 | +------------+ 1 row in set (0.00 sec) mysql> Select 10 IS NOT NULL; +----------
-
MySQLの条件に基づいてNULLおよびその他の値を持つテーブルからレコードをフェッチする
まずテーブルを作成しましょう- mysql> create table DemoTable ( value1 int, value2 int, value3 int ); Query OK, 0 rows affected (0.70 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(20,40,null); Query OK, 1 row affected (0.23 sec) mysql> in