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

Как POSITION() работи в MariaDB

В MariaDB, POSITION() е вградена функция за низ, която връща позицията на първото появяване на подниз в друг низ. Той е част от ODBC 3.0.

POSITION(substr IN str) е синоним на LOCATE(substr,str) .

POSITION() също е подобен на INSTR() функция, с изключение на POSITION() използва IN синтаксис и че редът на аргументите е обърнат между тези две функции.

Синтаксис

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

POSITION(substr IN str) 

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

Пример

Ето един основен пример:

SELECT POSITION('cute' IN 'My cute dog'); 

Резултат:

+---------------------------------+| POSITION('cute' IN 'My cute dog') |+-----------------------------------+ | 4 |+-----------------------------------+

Чувствителност на регистрите

POSITION() извършва търсене без значение на главни и малки букви:

SELECT POSITION('CUTE' IN 'My cute dog'); 

Резултат:

+---------------------------------+| POSITION('CUTE' В 'Моето сладко куче') |+-----------------------------------+ | 4 |+-----------------------------------+

Множество събития

Ако поднизът се появи повече от веднъж, се връща само позицията на първия (от началната позиция):

SELECT POSITION('cute' IN 'My cute dog is SOOOO cute!'); 

Резултат:

+------------------------------------------------------- ----+| POSITION('cute' IN 'Моето сладко куче е МНОГО сладко!') |+-------------------------------- ------------------+| 4 |+------------------------------------------------- ---+

Частично съвпадение

Ако поднизът е част от по-голяма дума, той все още е съвпадение:

SELECT POSITION('dog' IN 'My doggy is SOOO cute!'); 

Резултат:

+----------------------------------------------------+ | POSITION('куче' В 'Моето кученце е МНОГО сладко!') |+--------------------------------------- ------------+| 4 |+-----------------------------------------------+ 

Но ако низът е само част от подниза, това не е съвпадение:

SELECT POSITION('doggy' IN 'My dog is SOOO cute!'); 

Резултат:

+----------------------------------------------------+ | POSITION('doggy' IN 'Кучето ми е МНОГО сладко!') |+--------------------------------------- ------------+| 0 |+-----------------------------------------------+ 

Интервали

Знакът за интервал все още е низ, така че можем да включим интервали в подниза, дори ако това е единственият знак:

SELECT POSITION(' ' IN 'My dog'); 

Резултат:

+---------------------+| POSITION(' ' В 'Моето куче') |+---------------------------+| 3 |+--------------------------+

Празен низ

Ето какво се случва, когато поднизът е празен низ:

SELECT POSITION('' IN 'My dog'); 

Резултат:

+-------------------------+| ПОЗИЦИЯ('' В 'Моето куче') |+--------------------------+| 1 |+-------------------------+

Няма съвпадение

Ако поднизът не е намерен в низа, POSITION() връща 0 :

SELECT position('cat' IN 'My dog'); 

Резултат:

+----------------------------+| позиция('котка' В 'Моето куче') |+----------------------------+| 0 |+----------------------------+

Нулеви аргументи

Предоставяне на null за всеки от аргументите се получава null :

SELECT 
    POSITION(null IN 'My dog'),
    POSITION('dog' IN null); 

Резултат:

+----------------------------+---------------- --------+| POSITION(null В 'Моето куче') | POSITION('dog' IN null) |+----------------------------+----------- --------------+| NULL | NULL |+----------------------------+-------------- -------+

Предоставяне на грешен брой аргументи

Извикване на POSITION() с грешен брой аргументи или без подаване на аргументи води до грешка:

SELECT POSITION('dog'); 

Резултат:

ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB за правилния синтаксис, който да използвате близо до ')' на ред 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инсталирайте MariaDB на Mac

  2. MariaDB NULLIF() Обяснено

  3. Как работи FROM_UNIXTIME() в MariaDB

  4. Автоматично управление на версиите на данни в MariaDB Server 10.3

  5. Преглед на MariaDB Xpand (бивш ClustrixDB)