sql >> Databáze >  >> RDS >> Mysql

Rozdíl mezi FIELD() a FIND_IN_SET() v MySQL

MySQL obsahuje FIELD() funkce a FIND_IN_SET() funkce, která obě vrací pozici řetězce v seznamu. Tyto funkce však fungují mírně odlišně.

Hlavní rozdíl mezi těmito dvěma funkcemi je tento:

  • FIND_IN_SET() vrátí pozici indexu řetězce v seznamu řetězců.
  • FIELD() vrátí pozici indexu řetězce v seznamu argumentů.

Jedna funkce tedy prohledává seznam řetězců a druhá funkce prohledává seznam argumentů .

Syntaxe

Nejprve se podívejme na syntaxi těchto dvou funkcí:

FIELD()

Syntaxe pro FIELD() funkce vypadá takto:

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

Skládá se z počátečního argumentu, po kterém následuje několik následujících argumentů. Následné argumenty jsou tím, co se hledá – bez ohledu na to, kolik jich je.

FIND_IN_SET()

Syntaxe pro FIND_IN_SET() funkce vypadá takto:

FIND_IN_SET(str,strlist)

Skládá se z počátečního argumentu, po kterém následuje ještě jeden argument. Druhý argument obsahuje seznam řetězců, které mají být prohledány.

Příklady

FIELD()

Zde je příklad FIELD() funkce v akci:

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

Výsledek:

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

FIND_IN_SET()

A takto:FIND_IN_SET() funkce by byla zkonstruována tak, aby získala stejný výsledek:

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

Výsledek:

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


  1. Alibaba Cloud

  2. Během instalace PostgreSQL se nezdařilo načíst moduly SQL do clusteru databáze

  3. Co je kandidátský klíč v návrhu databáze?

  4. Poddotaz Oracle nevidí proměnnou z vnějšího bloku o 2 úrovně výše