sql >> Database teknologi >  >> RDS >> Mysql

Forskellen mellem FIELD() og FIND_IN_SET() i MySQL

MySQL inkluderer en FIELD() funktion og en FIND_IN_SET() funktion, der både returnerer positionen af ​​en streng på en liste. Disse funktioner fungerer dog lidt anderledes end hinanden.

Hovedforskellen mellem disse to funktioner er denne:

  • FIND_IN_SET() returnerer indekspositionen for en streng i en strengliste.
  • FIELD() returnerer indekspositionen af ​​en streng i en liste med argumenter.

Så én funktion søger efter en strengliste , og den anden funktion søger på en liste over argumenter .

Syntaks

Lad os først se på syntaksen for de to funktioner:

FELT()

Syntaksen for FIELD() funktionen går sådan her:

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

Dette består af et indledende argument efterfulgt af flere efterfølgende argumenter. De efterfølgende argumenter er det, der bliver søgt efter – uanset hvor mange af dem der er.

FIND_IN_SET()

Syntaksen for FIND_IN_SET() funktionen går sådan her:

FIND_IN_SET(str,strlist)

Dette består af et indledende argument, efterfulgt af endnu et argument. Det andet argument indeholder en liste over strenge, der skal søges i.

Eksempler

FELT()

Her er et eksempel på FIELD() funktion i aktion:

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

Resultat:

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

FIND_IN_SET()

Og her er hvordan FIND_IN_SET() funktion ville blive konstrueret til at få det samme resultat:

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

Resultat:

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


  1. Brug af StringWriter til XML-serialisering

  2. Hvordan sammenligner man softwareversioner ved hjælp af SQL Server?

  3. 12c IDENTITY kolonner

  4. skråstreg før hvert citatproblem