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

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


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

  • FIND_IN_SET()関数は、それ自体がコンマで区切られた部分文字列を含む文字列である文字列リストを使用します。一方、LOCATE()関数には文字列が含まれており、そこから部分文字列が最初に出現する位置を検出します(存在する場合)。
  • LOCATE()関数では、位置にオプションの引数を指定することで、検索の開始点を管理できます。一方、FIND_IN_SET()関数の場合、MySQLはそのような種類の柔軟性を提供せず、検索はデフォルトで最初の文字列から開始されます。
  • 整数の場合、FIND_IN_SET()はLOCATE()関数よりもはるかに適しています。次の例で理解できます

mysql> Select IF(LOCATE(2,'10,11,12,13') > 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)

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


  1. JavaScriptのクロージャ関数とネストされた関数の違いは何ですか?

    JavaScriptクロージャ JavaScriptでは、すべての関数がクロージャのように機能します。クロージャは、呼び出されたときに宣言されたスコープを使用する関数です。呼び出されたスコープではありません。 これが例です ライブデモ <!DOCTYPEhtml> <html>    <body>       <h2>JavaScriptClosures</h2>          <script>   &

  2. JavaScriptの関数とメソッドの違いは何ですか?

    JavaScriptでも関数とメソッドは同じですが、メソッドはオブジェクトのプロパティである関数です。 以下はJavaScriptの関数の例です- function functionname(param1, param2){    // code } 例 メソッドはオブジェクトに関連付けられた関数です。以下はJavaScriptのメソッドの例です- <html>    <head>       <script>          var e