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

Jak działa funkcja LOCATE() w MariaDB

W MariaDB, LOCATE() jest wbudowaną funkcją ciągu, która zwraca pozycję pierwszego wystąpienia podciągu w innym ciągu.

LOCATE() jest podobny do INSTR() funkcja, z wyjątkiem tego, że LOCATE() udostępnia opcję określenia pozycji początkowej wyszukiwania. Również kolejność argumentów jest odwrócona między tymi dwiema funkcjami.

Składnia

LOCATE() funkcja obsługuje składnię dwuargumentową i składnię trzyargumentową.

Składnia dwuargumentowa:

LOCATE(substr,str)

Składnia trzech argumentów:

LOCATE(substr,str,pos)

Gdzie str jest ciągiem, substr jest podciągiem do znalezienia, a pos to pozycja do rozpoczęcia wyszukiwania.

Przykład

Oto podstawowy przykład:

SELECT LOCATE('hot', 'The hot sun');

Wynik:

+------------------------------+
| LOCATE('hot', 'The hot sun') |
+------------------------------+
|                            5 |
+------------------------------+

Pozycja wyjściowa

Oto przykład podania pozycji początkowej wyszukiwania:

SELECT LOCATE('hot', 'The hot sun is really hot', 8);

Wynik:

+------------------------------------------------+
| LOCATE('hot', 'The hot sun is really hot', 8)  |
+------------------------------------------------+
|                                             23 |
+------------------------------------------------+

Wrażliwość na wielkość liter

LOCATE() wykonuje wyszukiwanie bez uwzględniania wielkości liter:

SELECT LOCATE('HOT', 'The hot sun');

Wynik:

+------------------------------+
| LOCATE('HOT', 'The hot sun') |
+------------------------------+
|                            5 |
+------------------------------+

Wiele wystąpień

Jeśli podciąg występuje więcej niż raz, zwracana jest tylko pozycja pierwszego (od pozycji początkowej):

SELECT LOCATE('hot', 'The hot sun is really hot');

Wynik:

+--------------------------------------------+
| LOCATE('hot', 'The hot sun is really hot') |
+--------------------------------------------+
|                                          5 |
+--------------------------------------------+

Oto pozycja wyjściowa:

SELECT LOCATE('hot', 'The hot sun is really hot', 20);

Wynik:

+------------------------------------------------+
| LOCATE('hot', 'The hot sun is really hot', 20) |
+------------------------------------------------+
|                                             23 |
+------------------------------------------------+

Dopasowanie częściowe

Jeśli podciąg jest częścią większego słowa, nadal jest zgodny:

SELECT LOCATE('hot', 'The hottest sun');

Wynik:

+----------------------------------+
| LOCATE('hot', 'The hottest sun') |
+----------------------------------+
|                                5 |
+----------------------------------+

Ale jeśli ciąg jest tylko częścią podciągu, nie jest to dopasowanie:

SELECT LOCATE('hottest', 'The hot sun');

Wynik:

+----------------------------------+
| LOCATE('hottest', 'The hot sun') |
+----------------------------------+
|                                0 |
+----------------------------------+

Przestrzenie

Znak spacji nadal jest ciągiem, więc możemy w podłańcuch umieszczać spacje, nawet jeśli jest to jedyny znak:

SELECT LOCATE(' ', 'The hot sun');

Wynik:

+----------------------------+
| LOCATE(' ', 'The hot sun') |
+----------------------------+
|                          4 |
+----------------------------+

Pusty ciąg

Oto, co się dzieje, gdy podciąg jest pustym ciągiem:

SELECT LOCATE('', 'The hot sun');

Wynik:

+---------------------------+
| LOCATE('', 'The hot sun') |
+---------------------------+
|                         1 |
+---------------------------+

Brak dopasowania

Jeśli podciąg nie zostanie znaleziony w ciągu, LOCATE() zwraca 0 :

SELECT LOCATE('cold', 'The hot sun');

Wynik:

+-------------------------------+
| LOCATE('cold', 'The hot sun') |
+-------------------------------+
|                             0 |
+-------------------------------+

Argumenty zerowe

Podanie null dla dowolnego z argumentów daje wynik null :

SELECT 
    LOCATE(null, 'The hot sun'),
    LOCATE('hot', null);

Wynik:

+-----------------------------+---------------------+
| LOCATE(null, 'The hot sun') | LOCATE('hot', null) |
+-----------------------------+---------------------+
|                        NULL |                NULL |
+-----------------------------+---------------------+

Podanie niewłaściwej liczby argumentów

Wywołanie LOCATE() z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:

SELECT LOCATE('hot');

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 sposoby na wyświetlenie listy wszystkich funkcji w MariaDB

  2. Jak UTC_DATE() działa w MariaDB

  3. MariaDB DŁUGOŚĆB() Objaśnienie

  4. Napraw „BŁĄD 1054 (42S22):Nieznana kolumna „…” w „klauzula” w MariaDB

  5. Jak UTC_TIME() działa w MariaDB