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

Chọn mọi thứ trước hoặc sau một nhân vật nhất định trong MariaDB

Trong MariaDB, bạn có thể sử dụng SUBSTRING_INDEX() hàm để trả về mọi thứ trước hoặc sau một ký tự (hoặc các ký tự) nhất định trong một chuỗi.

Hàm này chấp nhận ba đối số; chuỗi, dấu phân cách và số lần xuất hiện của dấu phân cách đó để sử dụng để xác định chuỗi con sẽ trả về.

Ví dụ

Chúng ta có thể thấy cách hoạt động của hàm trong các ví dụ sau.

Chọn mọi thứ trước

Để chọn mọi thứ trước một ký tự nhất định, hãy đặt đối số thứ ba có giá trị dương:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);

Kết quả:

Red,Green

Trong ví dụ này, chúng tôi chọn mọi thứ trước dấu phẩy thứ hai. Điều này được thực hiện bằng cách sử dụng dấu phẩy (, ) làm dấu phân cách và 2 như số lượng.

Tôi đã sử dụng dấu phẩy trong ví dụ đó, nhưng nó có thể là bất kỳ ký tự hoặc chuỗi nào:

SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);

Kết quả:

Red or Green

Chọn mọi thứ sau

Sử dụng giá trị âm để chọn mọi thứ sau một ký tự nhất định:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);

Kết quả:

Green,Blue

Lưu ý rằng giá trị âm có nghĩa là nó sẽ được tính từ bên phải, sau đó chọn chuỗi con ở bên phải dấu phân cách.

Khi không tìm thấy Dấu phân cách

Nếu không tìm thấy dấu phân tách trong chuỗi, chuỗi sẽ được trả về đầy đủ.

Ví dụ:

SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);

Kết quả:

Red,Green,Blue

Trong trường hợp này, toàn bộ chuỗi được trả về đầy đủ vì chúng tôi đã sử dụng dấu gạch ngang (- ) làm dấu phân cách nhưng không có dấu gạch nối trong chuỗi.

Chúng tôi sẽ nhận được kết quả tương tự nếu chuỗi does chứa dấu phân tách, nhưng count của chúng tôi vượt quá số lượng dấu phân cách trong chuỗi.

Ví dụ:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 10);

Kết quả:

Red,Green,Blue

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

SUBSTRING_INDEX() hàm thực hiện tìm kiếm phân biệt chữ hoa chữ thường. Đó là, dấu phân cách cần phải là trường hợp chính xác trước khi nó khớp.

Trường hợp không chính xác

Dưới đây là một ví dụ về trường hợp không khớp:

SELECT SUBSTRING_INDEX('Red and green and blue', 'AND', 2);

Kết quả:

Red and green and blue

Chúng tôi nhận được toàn bộ chuỗi đầy đủ.

Trường hợp đúng

Đây là ví dụ tương tự, nhưng trường hợp khớp với nhau:

SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);

Kết quả:

Red and green

  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 phục thảm họa đám mây cho MariaDB và MySQL

  2. Cách cài đặt và bảo mật MariaDB trên Ubuntu

  3. Kiểm soát chuyển đổi dự phòng sao chép cho MySQL và MariaDB với các tập lệnh chuyển đổi dự phòng trước hoặc sau dự phòng

  4. Cách DATE_SUB () hoạt động trong MariaDB

  5. Chuẩn bị máy chủ MySQL hoặc MariaDB để sản xuất - Phần thứ nhất