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

MariaDB FIELD () so với FIND_IN_SET ():Sự khác biệt là gì?

Hai hàm tương tự trong MariaDB là FIELD()FIND_IN_SET() . Thoạt nhìn, những thứ này có vẻ giống nhau, nhưng có sự khác biệt.

Bài viết này xem xét sự khác biệt giữa hai chức năng này.

Cú pháp và Định nghĩa

Trước tiên, hãy xem cú pháp và định nghĩa của từng hàm:

Hàm Cú pháp Định nghĩa
FIELD() FIELD(pattern, str1[,str2,...]) Trả về vị trí chỉ mục của chuỗi hoặc số khớp với mẫu đã cho.
FIND_IN_SET() FIND_IN_SET(pattern, strlist) Trả về vị trí chỉ mục nơi mẫu đã cho xuất hiện trong danh sách chuỗi.

Cả hai hàm đều chấp nhận một pattern như đối số đầu tiên của họ. Tuy nhiên, điều tiếp theo sẽ làm nổi bật sự khác biệt của chúng:

  • FIELD() chấp nhận một hoặc nhiều chuỗi, được phân tách bằng dấu phẩy.
  • FIND_IN_SET() chấp nhận một danh sách chuỗi đơn.

Ví dụ

Dưới đây là một ví dụ chứng minh sự khác biệt giữa hai chức năng này:

SELECT 
    FIELD('bat', 'cat','dog','bat') AS "FIELD()",
    FIND_IN_SET('bat', 'cat,dog,bat') AS "FIND_IN_SET()";

Kết quả:

+---------+---------------+
| FIELD() | FIND_IN_SET() |
+---------+---------------+
|       3 |             3 |
+---------+---------------+

Mỗi hàm trả về cùng một kết quả, nhưng mỗi hàm chấp nhận các chuỗi ở một định dạng khác nhau.

Các giá trị được cung cấp cho FIELD() xuất hiện dưới dạng ba đối số riêng biệt, trong khi các giá trị được cung cấp cho FIND_IN_SET() đến như một danh sách chuỗi đơn (chứa các giá trị riêng biệt).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách liệt kê tất cả các thủ tục được lưu trữ trong MariaDB

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

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

  4. Điều cần kiểm tra xem Mức độ sử dụng I / O của MySQL có cao không

  5. Cách hoạt động của WEEKOFYEAR () trong MariaDB