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

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

INSTR() функцията връща позицията на първото появяване на подниз в низ. По принцип той прави същото нещо, което синтаксисът с два аргумента на LOCATE() функцията прави (освен че редът на аргументите е обратен).

Синтаксис

Синтаксисът е така:

INSTR(str,substr)

Където str е низът, който искате да търсите, и substr е поднизът, който търсите.

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

SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;

Резултат:

+--------+
| Result |
+--------+
|     10 |
+--------+

В този случай низът dogs започва от позиция 10.

Пример 2 – Не е чувствителен към главни букви

Не е чувствително главни и малки букви:

SELECT 
  INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1',
  INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';

Резултат:

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|       10 |       10 |
+----------+----------+

Пример 3 – Частично съвпадение

Няма значение дали вашата дума за търсене представлява само част от дума, тя пак ще съвпада (в края на краищата вие просто търсите подниз в низ):

SELECT INSTR('Cats and dogs like to run', 'do') AS Result;

Резултат:

+--------+
| Result |
+--------+
|     10 |
+--------+

Интервалът все още е част от низа. Така че можете да търсите първото място, ако трябва:

SELECT INSTR('Cats and dogs like to run', ' ') AS Result;

Резултат:

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

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

Не забравяйте, че се връща само позицията на първото появяване:

SELECT INSTR('Cats and dogs like to run', 'a') AS Result;

Резултат:

+--------+
| Result |
+--------+
|      2 |
+--------+

Пример 5 – Когато поднизът не може да бъде намерен

Ако поднизът не е намерен, резултат от 0 се връща:

SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;

Резултат:

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

Пример 6 – Неправилен брой параметри

Ако пропуснете някой от параметрите, ще получите грешка:

SELECT INSTR('Cats and dogs like to run') AS Result;

Резултат:

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

Ще получите и грешка, ако предоставите твърде много параметри:

SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да синхронизирам база данни SQLite на телефон с Android с база данни MySQL на сървъра?

  2. Защо условието IN би било по-бавно от =в sql?

  3. Вземете текущата стойност AUTO_INCREMENT за всяка таблица

  4. MySQL Update Inner Join таблици заявка

  5. Използване на ScrollableResults на Hibernate за бавно четене на 90 милиона записа