MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak FIND_IN_SET() działa w MariaDB?

W MariaDB, FIND_IN_SET() jest wbudowaną funkcją ciągów znaków, która zwraca pozycję indeksu, w której dany wzorzec występuje na określonej liście ciągów.

Przyjmuje dwa argumenty. Pierwszy to wzór, który chcesz wyszukać. Drugim argumentem jest łańcuch zawierający wartości oddzielone przecinkami, dla których należy dopasować wzorzec.

Składnia

Składnia wygląda tak:

FIND_IN_SET(pattern, strlist)

Gdzie pattern to wzorzec, który chcesz wyszukać, a strlist reprezentuje ciąg wartości oddzielonych przecinkami do przeszukania.

Przykład

Oto podstawowy przykład:

SELECT FIND_IN_SET('Green,', 'Red,Green,Blue');

Wynik:

+----------------------------------------+
| FIND_IN_SET('Green', 'Red,Green,Blue') |
+----------------------------------------+
|                                      2 |
+----------------------------------------+

W tym przypadku wzorzec (Green ) występuje na drugiej pozycji, więc 2 jest zwracany.

Brak dopasowania

Jeśli nie ma dopasowania, 0 jest zwracany.

Przykład:

SELECT FIND_IN_SET('Nope', 'Red,Green,Blue');

Wynik:

+---------------------------------------+
| FIND_IN_SET('Nope', 'Red,Green,Blue') |
+---------------------------------------+
|                                     0 |
+---------------------------------------+

Wiele meczów

Jeśli istnieje wiele dopasowań, zwracany jest tylko indeks pierwszego z nich:

SELECT FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat');

Wynik:

+-------------------------------------------+
| FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat') |
+-------------------------------------------+
|                                         2 |
+-------------------------------------------+

Określanie wzorca zerowego

Podanie null jako pierwszy argument daje wynik null zwracany:

SELECT FIND_IN_SET(null, 'Cat,Dog,Cat');

Wynik:

+----------------------------------+
| FIND_IN_SET(null, 'Cat,Dog,Cat') |
+----------------------------------+
|                             NULL |
+----------------------------------+

Określanie listy ciągów zerowych

Podanie null jako drugi argument powoduje również null :

SELECT FIND_IN_SET('Dog', null);

Wynik:

+--------------------------+
| FIND_IN_SET('Dog', null) |
+--------------------------+
|                     NULL |
+--------------------------+

Pusta lista ciągów

Jeśli lista ciągów jest pusta, FIND_IN_SET() zwraca 0 :

SELECT FIND_IN_SET('Dog', '');

Wynik:

+------------------------+
| FIND_IN_SET('Dog', '') |
+------------------------+
|                      0 |
+------------------------+

Przecinek we wzorcu

FIND_IN_SET() nie zwraca prawidłowego wyniku, jeśli wzorzec zawiera przecinek:

SELECT FIND_IN_SET('Green,', 'Red,Green,Blue');

Wynik:

+-----------------------------------------+
| FIND_IN_SET('Green,', 'Red,Green,Blue') |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+

Pojedynczy argument

Przekazywanie tylko jednego argumentu do FIND_IN_SET() zwraca błąd:

SELECT FIND_IN_SET('Cat');

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'

Brakujący argument

Wywołanie FIND_IN_SET() bez przekazania żadnych argumentów powoduje błąd:

SELECT FIND_IN_SET();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Napraw „BŁĄD 1054 (42S22):Nieznana kolumna „colname” w „klauzula zamówienia” w MariaDB

  2. Jak dodać AM/PM do wartości czasu lub daty i godziny w MariaDB?

  3. 2 sposoby na usunięcie zduplikowanych wierszy w MariaDB (ignoruje klucz podstawowy)

  4. Serwer MariaDB 10.0.33 jest już dostępny

  5. Jak działa SOUNDEX() w MariaDB