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

MySQL INSTR()関数とFIND_IN_SET()関数の違いは何ですか?


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

  • FIND_IN_SET()関数は、それ自体がコンマで区切られた部分文字列を含む文字列である文字列リストを使用します。一方、INSTR()関数には文字列が含まれており、そこから部分文字列が最初に出現する位置を検出します(存在する場合)。
  • 整数の場合、FIND_IN_SET()はINSTR()関数よりもはるかに適しています。次の例で理解できます

mysql> Select IF(INSTR('10,11,12,13',2) > 0,1,0) As Result;
+--------+
| Result |
+--------+
|      1 |
+--------+
1 row in set (0.05 sec)

mysql> Select IF(FIND_IN_SET(2,'10,11,12,13') > 0,1,0)As Result;
+--------+
| Result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

上記の例の結果セットから、引数に文字列が存在しないため、INSTR()関数は2でも1を返すことがわかります。ただし、FIND_IN_SET()関数は0を返します。これは正解です。


  1. MySQLでは、!=NULLとISNOT NULLの違いは何ですか?

    値を!=NULLと比較すると、NULLが返されます。したがって、!=NULLは無意味です。 !=NULLとISNOT NULLの違いを確認するために、最初にテーブルを作成しましょう。 まずテーブルを作成しましょう- mysql> create table DemoTable1970    (    Value int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa

  2. C#の仮想関数と抽象関数の違いは何ですか?

    抽象メソッドは実装を提供せず、派生クラスにメソッドをオーバーライドするように強制します。抽象クラスで宣言されています。抽象メソッドにはメソッド定義しかありません 仮想メソッドには、Abstractメソッドとは異なり、実装があり、abstractクラスとnon-abstractクラスに存在できます。派生クラスにオーバーライドするオプションを提供します。 仮想関数 virtualキーワードは、メソッド、プロパティ、インデクサー、またはイベントを変更する場合に役立ちます。継承されたクラスに実装したいクラスで関数を定義する場合は、仮想関数を使用します。仮想関数は、継承されたクラスごとに異なる方法で