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

Jak działa POSITION() w MariaDB

W MariaDB, POSITION() jest wbudowaną funkcją ciągu, która zwraca pozycję pierwszego wystąpienia podciągu w innym ciągu. Jest częścią ODBC 3.0.

POSITION(substr IN str) jest synonimem LOCATE(substr,str) .

POSITION() jest również podobny do INSTR() funkcja, z wyjątkiem tego, że POSITION() używa IN składnia, a kolejność argumentów jest odwrócona między tymi dwiema funkcjami.

Składnia

Składnia wygląda tak:

POSITION(substr IN str)

Gdzie str jest ciągiem, a substr jest podciągiem, dla którego należy zwrócić pozycję.

Przykład

Oto podstawowy przykład:

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

Wynik:

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

Wrażliwość na wielkość liter

POSITION() wykonuje wyszukiwanie bez uwzględniania wielkości liter:

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

Wynik:

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

Wiele wystąpień

Jeśli podciąg występuje więcej niż raz, zwracana jest tylko pozycja pierwszego (od pozycji początkowej):

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

Wynik:

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

Dopasowanie częściowe

Jeśli podciąg jest częścią większego słowa, nadal jest zgodny:

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

Wynik:

+---------------------------------------------+
| POSITION('dog' IN 'My doggy is SOOO cute!') |
+---------------------------------------------+
|                                           4 |
+---------------------------------------------+

Ale jeśli ciąg jest tylko częścią podciągu, nie jest to dopasowanie:

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

Wynik:

+---------------------------------------------+
| POSITION('doggy' IN 'My dog is SOOO cute!') |
+---------------------------------------------+
|                                           0 |
+---------------------------------------------+

Przestrzenie

Znak spacji nadal jest ciągiem, więc możemy w podłańcuch umieszczać spacje, nawet jeśli jest to jedyny znak:

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

Wynik:

+---------------------------+
| POSITION(' ' IN 'My dog') |
+---------------------------+
|                         3 |
+---------------------------+

Pusty ciąg

Oto, co się dzieje, gdy podciąg jest pustym ciągiem:

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

Wynik:

+--------------------------+
| POSITION('' IN 'My dog') |
+--------------------------+
|                        1 |
+--------------------------+

Brak dopasowania

Jeśli podciąg nie zostanie znaleziony w ciągu, POSITION() zwraca 0 :

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

Wynik:

+-----------------------------+
| position('cat' IN 'My dog') |
+-----------------------------+
|                           0 |
+-----------------------------+

Argumenty zerowe

Podanie null dla dowolnego z argumentów daje wynik null :

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

Wynik:

+----------------------------+-------------------------+
| POSITION(null IN 'My dog') | POSITION('dog' IN null) |
+----------------------------+-------------------------+
|                       NULL |                    NULL |
+----------------------------+-------------------------+

Podanie niewłaściwej liczby argumentów

Wywołanie POSITION() z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:

SELECT POSITION('dog');

Wynik:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 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. Jak CURDATE() działa w MariaDB

  2. MariaDB LCASE() Objaśnienie

  3. Pierwsze kroki z MariaDB przy użyciu Dockera, Java Spring i JDBC

  4. Jak podłączyć programy C++ do MariaDB

  5. Jak TIMESTAMPADD() działa w MariaDB