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

MySQLでは、FIELD()関数はFIND_IN_SET()関数とどのように異なりますか?


ご存知のように、両方の関数は、提供された引数から文字列を検索するために使用されますが、次のようにいくつかの重要な違いがあります-

FIND_IN_SET()- 関数は、それ自体がコンマで区切られた部分文字列を含む文字列である文字列リストを使用します。一方、FIELD()関数にはさまざまな文字列のリストが含まれており、その中に検索対象の文字列のインデックス番号が含まれています(存在する場合)。

FIND_IN_SET()− 引数のいずれか、つまり検索文字列または文字列リストのいずれかがNULLの場合、関数はNULLを返します。対照的に、FIELD()関数はNULLを返しませんが、検索文字列がNULLの場合は0を返します。

mysql> Select FIND_IN_SET(NULL,'Ram is a good boy') AS Result;

+--------+
| Result |
+--------+
| NULL   |
+--------+

1 row in set (0.00 sec)

mysql> SELECT FIND_IN_SET('RAM',NULL)AS RESULT;

+--------+
| RESULT |
+--------+
| NULL   |
+--------+

1 row in set (0.00 sec)

mysql> Select FIELD(NULL,'Ram','is','good','boy');

+-------------------------------------+
| FIELD(NULL,'Ram','is','good','boy') |
+-------------------------------------+
|                                   0 |
+-------------------------------------+

1 row in set (0.00 sec)

  1. フィールドがnullに設定されている場合でも、MySQLで別のフィールドを選択しますか?

    これには、COALESCE()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1336    -> (    -> FirstName varchar(20)    -> ,    -> SecondName varchar(20)    -> ); Query OK, 0 rows affected (0.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql

  2. MySQLの別のフィールドからフィールドの値を導出する方法は?

    このために、ユーザー定義変数の概念を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1868      (      Value int      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1868 values(10); Query OK, 1 row affected (0