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

Różnica między INSTR() a LOCATE() w MariaDB

MariaDB ma INSTR() funkcja, a także LOCATE() funkcjonować. Obie funkcje wydają się robić dokładnie to samo – zwracają pozycję podciągu w ciągu.

Jest jednak różnica.

Różnice

Możemy zobaczyć różnicę między tymi dwiema funkcjami, patrząc na ich składnię, a także na kilka przykładów.

Składnia

Składnia INSTR() :

INSTR(str,substr)

Dwie akceptowane składnie dla LOCATE() :

LOCATE(substr,str)
LOCATE(substr,str,pos)

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

Różnicę między tymi dwiema funkcjami można podsumować w następujący sposób:

  • LOCATE() funkcja przyjmuje te same dwa argumenty, które INSTR() akceptuje, ale w odwrotnej kolejności.
  • LOCATE() funkcja przyjmuje opcjonalny trzeci argument, aby określić pozycję początkową wyszukiwania. INSTR() funkcja nie akceptuje takiego argumentu.

Więc LOCATE() zapewnia dodatkową funkcjonalność, którą INSTR() nie zapewnia.

Przykład 1 – Pierwsza różnica

Oto przykład pokazujący odwrotną kolejność, w jakiej obie funkcje akceptują swoje argumenty:

SELECT 
    INSTR('Disconnect', 'con'),
    LOCATE('con', 'Disconnect');

Wynik:

+----------------------------+-----------------------------+
| INSTR('Disconnect', 'con') | LOCATE('con', 'Disconnect') |
+----------------------------+-----------------------------+
|                          4 |                           4 |
+----------------------------+-----------------------------+

Przykład 2 – Druga różnica

Oto przykład pokazujący dodatkową funkcjonalność, którą LOCATE() zapewnia ponad INSTR() :

SELECT 
    INSTR('My cat is a good cat', 'cat') AS "INSTR()",
    LOCATE('cat', 'My cat is a good cat') AS "LOCATE()",
    LOCATE('cat', 'My cat is a good cat', 10) AS "LOCATE() with 3rd Argument";

Wynik:

+---------+----------+----------------------------+
| INSTR() | LOCATE() | LOCATE() with 3rd Argument |
+---------+----------+----------------------------+
|       4 |        4 |                         18 |
+---------+----------+----------------------------+

Ten przykład podkreśla fakt, że LOCATE() funkcja dostarcza nam opcjonalny trzeci argument. Ten argument pozwala nam określić pozycję początkową wyszukiwania, co oznacza, że ​​nie jesteśmy ograniczeni tylko do pierwszego wystąpienia w całym ciągu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa operator Modulo w MariaDB

  2. Konfigurowanie uwierzytelniania LDAP i mapowania grup za pomocą MariaDB

  3. Planowanie odzyskiwania po awarii dla MySQL i MariaDB

  4. Szyfrowanie baz danych:dlaczego i gdzie potrzebne jest szyfrowanie danych

  5. Rozważania dotyczące bezpieczeństwa wdrożeń MariaDB w środowisku chmury hybrydowej