Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak działa funkcja POSITION() w MySQL

W MySQL POSITION() funkcja zwraca pozycję pierwszego wystąpienia podciągu w ciągu.

Ta funkcja jest właściwie synonimem LOCATE() , ale z nieco inną składnią. LOCATE() funkcja ma również dodatkową funkcjonalność, ponieważ pozwala zdefiniować pozycję początkową wyszukiwania.

Składnia

Podstawowa składnia wygląda następująco:

POSITION(substr IN str)

Gdzie substr jest podciągiem i str jest ciągiem.

Przykład 1 – Podstawowe użycie

SELECT POSITION('Cat' IN 'The Cat') Result;

Wynik:

+--------+
| Result |
+--------+
|      5 |
+--------+

Przykład 2 – Rozróżnianie wielkości liter

POSITION() Funkcja jest bezpieczna dla wielu bajtów i rozróżnia wielkość liter tylko wtedy, gdy co najmniej jeden argument jest ciągiem binarnym.

W poniższym przykładzie nie jest rozróżniana wielkość liter:

SELECT POSITION('Cat' IN 'The Cat') Result;

Wynik:

+--------+
| Result |
+--------+
|      5 |
+--------+

Przykład 3 – Brak dopasowania

Funkcja zwraca 0 jeśli podciąg nie zostanie znaleziony w ciągu:

SELECT POSITION('Dog' IN 'The cat') Result;

Wynik:

+--------+
| Result |
+--------+
|      0 |
+--------+

Przykład 4 – osadzone podciągi

Zachowaj ostrożność przy wyborze podciągu. Jeśli jest to część innego słowa, możesz otrzymać fałszywy alarm:

SELECT POSITION('Cat' IN 'Good Catch!') Result;

Wynik:

+--------+
| Result |
+--------+
|      6 |
+--------+

Jeśli szukasz tylko kota , zwierzę, byłby to fałszywie pozytywny wynik.

Przykład 5 – Tylko pierwsze wystąpienie

Pamiętaj, ta funkcja zwraca tylko pozycję pierwszego wystąpienie podciągu. Wszelkie kolejne wystąpienia są ignorowane:

SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;

Wynik:

+--------+
| Result |
+--------+
|      4 |
+--------+

Przykład 6 – Argumenty NULL

Jeśli którykolwiek z argumentów jest NULL , wynik to NULL :

SELECT 
  POSITION('Cat' IN NULL) 'Result 1',
  POSITION(NULL IN 'The Cat') 'Result 2';

Wynik:

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|     NULL |     NULL |
+----------+----------+

Jak wspomniano, możesz również użyć funkcji LOCATE() funkcja, która pozwala określić pozycję początkową wyszukiwania.


  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 wstawić plik do bazy danych MySQL?

  2. MySQL:ALTER IGNORE TABLE daje naruszenie ograniczenia integralności

  3. Jak skonfigurować automatyczne przełączanie awaryjne dla bazy danych Moodle MySQL?

  4. Jak dodać nową kolumnę do tabeli MYSQL?

  5. Różnice między bazami danych SQL i NoSQL — porównanie MySQL i MongoDB