sql >> Databasteknik >  >> RDS >> Mysql

Skillnaden mellan FIELD() och FIND_IN_SET() i MySQL

MySQL inkluderar en FIELD() funktion och en FIND_IN_SET() funktion som båda returnerar positionen för en sträng i en lista. Dessa funktioner fungerar dock lite annorlunda än varandra.

Huvudskillnaden mellan dessa två funktioner är denna:

  • FIND_IN_SET() returnerar indexpositionen för en sträng i en stränglista.
  • FIELD() returnerar indexpositionen för en sträng i en lista med argument.

Så en funktion söker efter en stränglista , och den andra funktionen söker efter en lista med argument .

Syntax

Låt oss först titta på syntaxen för de två funktionerna:

FIELD()

Syntaxen för FIELD() funktionen går så här:

FIELD(str,str1,str2,str3,...)

Detta består av ett initialt argument, följt av flera efterföljande argument. Det är de efterföljande argumenten som söks efter – hur många som helst.

FIND_IN_SET()

Syntaxen för FIND_IN_SET() funktionen går så här:

FIND_IN_SET(str,strlist)

Detta består av ett första argument, följt av ytterligare ett argument. Det andra argumentet innehåller en lista med strängar som ska sökas i.

Exempel

FIELD()

Här är ett exempel på FIELD() funktion i aktion:

SELECT FIELD('horse', 'Cat','Dog','Horse') AS 'Result';

Resultat:

+--------+
| Result |
+--------+
|      3 |
+--------+

FIND_IN_SET()

Och här är hur FIND_IN_SET() funktion skulle konstrueras för att få samma resultat:

SELECT FIND_IN_SET('horse', 'Cat,Dog,Horse') AS 'Result';

Resultat:

+--------+
| Result |
+--------+
|      3 |
+--------+


  1. Gruvplaner:Inte bara för planens cache

  2. Hämta returvärdet från JDBC MSSQL

  3. SQL Server-databaser CPU-användningsstatistik

  4. Hur Time()-funktionen fungerar i SQLite