Mysql
 sql >> база данни >  >> RDS >> Mysql

Как работи функцията POSITION() в MySQL

В MySQL POSITION() функцията връща позицията на първото появяване на подниз в низа.

Тази функция всъщност е синоним на LOCATE() , но с малко по-различен синтаксис. LOCATE() функцията също има допълнителна функционалност, тъй като ви позволява да дефинирате начална позиция за вашето търсене.

Синтаксис

Основният синтаксис е така:

POSITION(substr IN str)

Където substr е поднизът и str е низът.

Пример 1 – Основна употреба

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

Резултат:

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

Пример 2 – Чувствителност на малки и малки букви

POSITION() функцията е многобайтова безопасна и е чувствителна към малките букви само ако поне един аргумент е двоичен низ.

Така че следният пример не е чувствителен към малки и големи букви:

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

Резултат:

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

Пример 3 – Няма съвпадение

Функцията връща 0 ако поднизът не е намерен в низа:

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

Резултат:

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

Пример 4 – Вградени поднизове

Бъдете внимателни при избора на подниз. Ако е част от друга дума, можете да получите фалшиво положително:

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

Резултат:

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

Ако търсите само котка , животното, това би било фалшиво положително.

Пример 5 – Само първо появяване

Не забравяйте, че тази функция връща само позицията на първия поява на подниз. Всички последващи събития се игнорират:

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

Резултат:

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

Пример 6 – NULL аргументи

Ако някой от аргументите е NULL , резултатът е NULL :

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

Резултат:

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

Както споменахме, можете също да използвате 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. Вземете разлика в годините между две дати в MySQL като цяло число

  2. Ръководство за проектиране на база данни за известия в MySQL

  3. Какви ефекти има използването на двоично съпоставяне?

  4. Как да се свържете с MySQL или MariaDB база данни

  5. Урок за MySQL:MySQL IN изявление (разширено)