MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách POSITION () hoạt động trong MariaDB

Trong MariaDB, POSITION() là một hàm chuỗi tích hợp trả về vị trí của lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi khác. Nó là một phần của ODBC 3.0.

POSITION(substr IN str) là từ đồng nghĩa với LOCATE(substr,str) .

POSITION() cũng tương tự với INSTR() , ngoại trừ POSITION() đó sử dụng IN cú pháp và thứ tự đối số được đảo ngược giữa hai hàm này.

Cú pháp

Cú pháp như sau:

POSITION(substr IN str)

Ở đâu str là chuỗi và substr là chuỗi con để trả về vị trí của.

Ví dụ

Đây là một ví dụ cơ bản:

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

Kết quả:

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

Phân biệt chữ hoa chữ thường

POSITION() thực hiện tìm kiếm không phân biệt chữ hoa chữ thường:

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

Kết quả:

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

Nhiều lần xuất hiện

Nếu chuỗi con xảy ra nhiều lần, chỉ vị trí của chuỗi đầu tiên (từ vị trí bắt đầu) được trả về:

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

Kết quả:

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

Khớp một phần

Nếu chuỗi con là một phần của một từ lớn hơn, thì nó vẫn là một kết quả khớp:

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

Kết quả:

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

Nhưng nếu chuỗi chỉ là một phần của chuỗi con, thì đó không phải là một chuỗi khớp:

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

Kết quả:

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

Dấu cách

Ký tự khoảng trắng vẫn là một chuỗi, vì vậy chúng tôi có thể bao gồm khoảng trắng trong chuỗi con, ngay cả khi đó là ký tự duy nhất:

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

Kết quả:

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

Chuỗi trống

Dưới đây là những gì sẽ xảy ra khi chuỗi con là một chuỗi rỗng:

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

Kết quả:

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

Không phù hợp

Nếu không tìm thấy chuỗi con trong chuỗi, hãy POSITION() trả về 0 :

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

Kết quả:

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

Đối số rỗng

Cung cấp null đối với bất kỳ đối số nào dẫn đến null :

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

Kết quả:

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

Cung cấp số lượng lập luận sai

Gọi POSITION() với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào dẫn đến lỗi:

SELECT POSITION('dog');

Kết quả:

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. Khái niệm cơ bản về mã hóa cơ sở dữ liệu máy chủ MariaDB

  2. Cách MONTH () hoạt động trong MariaDB

  3. Cân bằng tải MariaDB MaxScale trên Docker:Quản lý:Phần thứ hai

  4. Quản lý cơ bản MaxScale bằng cách sử dụng MaxCtrl cho MariaDB Cluster

  5. HOUR () so với EXTRACT (HOUR…) ở MariaDB:Sự khác biệt là gì?