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

Sự khác biệt giữa INSTR () và LOCATE () trong MariaDB

MariaDB có INSTR() và cũng là một LOCATE() hàm số. Cả hai hàm dường như thực hiện chính xác cùng một việc - trả về vị trí của một chuỗi con trong một chuỗi.

Tuy nhiên, có một sự khác biệt.

Sự khác biệt

Chúng ta có thể thấy sự khác biệt giữa hai hàm này bằng cách xem cú pháp của chúng, cũng như một vài ví dụ.

Cú pháp

Cú pháp cho INSTR() :

INSTR(str,substr)

Hai cú pháp được chấp nhận cho LOCATE() :

LOCATE(substr,str)
LOCATE(substr,str,pos)

Ở đâu str là chuỗi, substr là chuỗi con cần tìm và pos là vị trí để bắt đầu tìm kiếm.

Sự khác biệt giữa hai chức năng có thể được tóm tắt như sau:

  • LOCATE() hàm chấp nhận hai đối số giống nhau INSTR() chấp nhận, nhưng theo thứ tự ngược lại.
  • LOCATE() hàm chấp nhận một đối số thứ ba tùy chọn để chỉ định vị trí bắt đầu cho tìm kiếm. INSTR() hàm không chấp nhận đối số như vậy.

Vì vậy, LOCATE() cung cấp chức năng bổ sung INSTR() không cung cấp.

Ví dụ 1 - Sự khác biệt đầu tiên

Dưới đây là một ví dụ cho thấy thứ tự ngược lại trong đó hai hàm chấp nhận các đối số của chúng:

SELECT 
    INSTR('Disconnect', 'con'),
    LOCATE('con', 'Disconnect');

Kết quả:

+----------------------------+-----------------------------+
| INSTR('Disconnect', 'con') | LOCATE('con', 'Disconnect') |
+----------------------------+-----------------------------+
|                          4 |                           4 |
+----------------------------+-----------------------------+

Ví dụ 2 - Sự khác biệt thứ hai

Dưới đây là một ví dụ cho thấy chức năng bổ sung mà LOCATE() cung cấp hơn INSTR() :

SELECT 
    INSTR('My cat is a good cat', 'cat') AS "INSTR()",
    LOCATE('cat', 'My cat is a good cat') AS "LOCATE()",
    LOCATE('cat', 'My cat is a good cat', 10) AS "LOCATE() with 3rd Argument";

Kết quả:

+---------+----------+----------------------------+
| INSTR() | LOCATE() | LOCATE() with 3rd Argument |
+---------+----------+----------------------------+
|       4 |        4 |                         18 |
+---------+----------+----------------------------+

Ví dụ này nêu bật thực tế là LOCATE() hàm cung cấp cho chúng ta một đối số thứ ba tùy chọn. Đối số này cho phép chúng tôi chỉ định vị trí bắt đầu cho tìm kiếm, có nghĩa là chúng tôi không bị giới hạn chỉ với lần xuất hiện đầu tiên trong toàn bộ chuỗi.


  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 10.6 và NextCloud:Hàng COMPRESSED được mặc định chỉ đọc

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

  3. Cách TIMESTAMPADD () hoạt động trong MariaDB

  4. Cách định cấu hình sao chép cụm-thành-cụm cho Percona XtraDB Cluster hoặc MariaDB Cluster

  5. MariaDB JSON_DETAILED () Giải thích