MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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と比較することも意味します。


  1. 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; +----------

  2. 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