Làm cách nào để tìm một chuỗi con trong MySQL?

Trong hướng dẫn này, chúng ta sẽ nghiên cứu chức năng MySQL

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0. Hàm

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 là một hàm chuỗi được sử dụng để tìm ra vị trí xuất hiện đầu tiên của một chuỗi con trong một chuỗi. Nếu chuỗi không chứa chuỗi con, thì vị trí được trả về là 0. Hàm

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 thực hiện tìm kiếm nhiều byte an toàn và không phân biệt chữ hoa chữ thường.

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 và

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
4 có một sự khác biệt đáng kể –

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 cho phép chúng tôi đặt điểm bắt đầu cho hoạt động. Điều này có nghĩa là chúng ta có thể đặt vị trí bắt đầu cho chuỗi từ nơi diễn ra quá trình tìm kiếm chuỗi con. Hàm

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 thường được sử dụng với câu lệnh

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
7


Cú pháp của MySQL LOCATE()

________số 8

Trong đó 'chuỗi con' là chuỗi sẽ được tìm kiếm trong một 'chuỗi' đối số đã cho khác. Đối số 'bắt đầu' là một đối số tùy chọn được sử dụng để chỉ định vị trí bắt đầu cho tìm kiếm. Nếu nó không được đề cập, thì

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 giả sử nó là 1


Ví dụ về MySQL LOCATE()

Hãy xem xét một số ví dụ về chức năng LOCATE của MySQL

Trong các truy vấn bên dưới, chúng tôi đã sử dụng bí danh có tên là Kết quả để đầu ra có thể đọc được

Xem xét truy vấn dưới đây

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)

Nhiệm vụ của truy vấn trên là đặt điểm bắt đầu cho thao tác ở vị trí 4 (khoảng trắng sau chữ 'Dev' đầu tiên) và kiểm tra chuỗi con 'Dev' từ vị trí đó. Chúng tôi nhận được đầu ra của chúng tôi là,

Làm cách nào để tìm một chuỗi con trong MySQL?

MySQL LOCATE() không phân biệt chữ hoa chữ thường

Hãy để chúng tôi xem cách

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 phân biệt chữ hoa chữ thường. Hãy xem truy vấn dưới đây

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
2

Và đầu ra của chúng tôi là,

Làm cách nào để tìm một chuỗi con trong MySQL?

Sau vị trí 5, chuỗi của chúng ta là “ve a dog and she has a cat. ”. Rõ ràng,

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 bỏ qua trường hợp của bảng chữ cái và trả về vị trí của 'Dog' trong chuỗi đã cho

Hành vi không phù hợp

MySQL

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 trả về 0 nếu không tìm thấy chuỗi con trong một chuỗi đã cho. Chúng ta hãy xem ví dụ dưới đây

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
5

Sau vị trí 12, chuỗi của chúng tôi là “g và cô ấy có một con mèo. ” và vì không có sự xuất hiện của 'Dog' trong chuỗi này, nên chúng tôi nhận được kết quả của mình là,

Làm cách nào để tìm một chuỗi con trong MySQL?

Giá trị NULL với LOCATE()

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 trả về NULL nếu bất kỳ đối số nào của nó là giá trị NULL. Hãy chứng minh rằng bằng cách sử dụng truy vấn bên dưới,

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
7

Và chúng tôi nhận được đầu ra của mình là NULL như hình bên dưới –

Làm cách nào để tìm một chuỗi con trong MySQL?

Sử dụng MySQL LOCATE() với dữ liệu Bảng

Xem xét bảng Nhân viên bên dưới

Làm cách nào để tìm một chuỗi con trong MySQL?
bảng nhân viên

ví dụ 1

Bây giờ, hãy xem xét truy vấn bên dưới –

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
8

Với truy vấn này, chúng tôi đang tìm kiếm những giá trị trong cột 'Tên' có chữ 'N' trên hoặc sau ký tự thứ 4. Đầu ra là,

Làm cách nào để tìm một chuỗi con trong MySQL?

ví dụ 2

Bây giờ, nếu chúng ta không muốn xem các mục không có chữ 'N' trên hoặc sau ký tự thứ 4 trong đó thì sao? . Truy vấn cho điều này là,

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
9

Và chúng tôi nhận được đầu ra của mình chỉ là những tên có chữ 'N' trên hoặc sau ký tự thứ 4 trong đó

Làm cách nào để tìm một chuỗi con trong MySQL?


Sự khác biệt giữa VỊ TRÍ() và VỊ TRÍ()

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 và

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
4 về cơ bản làm điều tương tự. Cả hai đều trả về vị trí xuất hiện đầu tiên của một chuỗi con trong một chuỗi. Nhưng có một sự khác biệt đáng kể trong cách chúng ta có thể làm việc với chúng. Tóm lại,

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
4 thiếu một tính năng khi so sánh với

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0

Bạn thấy đấy,

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 có một đối số tùy chọn (đối số thứ ba) được gọi là 'bắt đầu' như đã đề cập trong cú pháp trước đó. Đối số này được sử dụng để chỉ định vị trí trở đi mà chúng ta muốn

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 bắt đầu tìm kiếm chuỗi con.

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
4 không có lập luận như vậy

Giả sử bạn có một biến @str như sau

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
7

Làm cách nào để tìm một chuỗi con trong MySQL?

Bây giờ, nếu bạn muốn tìm lần xuất hiện đầu tiên của 'Úc' trong biến thì sao?

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
8

Và đầu ra là,

Làm cách nào để tìm một chuỗi con trong MySQL?

Đó là tất cả tốt. Nhưng nếu chúng ta muốn kiểm tra xem có bất kỳ sự xuất hiện nào khác của 'Úc' trong biến @str không? . Hãy để chúng tôi thêm một vào kết quả trước đó và đặt nó làm đối số 'bắt đầu' của chúng tôi

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
1

Và đầu ra là,

Làm cách nào để tìm một chuỗi con trong MySQL?


Phần kết luận

Hàm MySQL

SELECT LOCATE('Dev', 'Dev in JournalDev', 4) AS Result;

Code language: SQL (Structured Query Language) (sql)
0 là một hàm hữu ích để kiểm tra xem một chuỗi có tồn tại trong một chuỗi hay không. Nó có thể rất hữu ích trong phân tích dữ liệu khám phá và các hàm chuỗi

Làm cách nào để kiểm tra chuỗi con trong MySQL?

MySQL Hàm LOCATE() . Nếu không tìm thấy chuỗi con trong chuỗi gốc, hàm này trả về 0. Hàm này thực hiện tìm kiếm không phân biệt chữ hoa chữ thường. Ghi chú. Hàm này tương đương với hàm POSITION().

Làm cách nào để tìm kiếm một chuỗi trong bảng MySQL?

hàm LOCATE() . Cả hai chuỗi này đều được truyền dưới dạng đối số. Một đối số tùy chọn có thể được sử dụng để chỉ định từ vị trí nào của chuỗi (i. e. chuỗi cần tìm) quá trình tìm kiếm sẽ bắt đầu.

Làm cách nào để tìm vị trí của chuỗi con trong SQL?

Hàm CHARINDEX() tìm kiếm một chuỗi con trong một chuỗi và trả về vị trí. Nếu không tìm thấy chuỗi con, hàm này trả về 0. Ghi chú. Hàm này thực hiện tìm kiếm không phân biệt chữ hoa chữ thường

Làm cách nào để chọn một phần của chuỗi trong MySQL?

Hàm SUBSTRING() trong MySQL . Nó trích xuất một chuỗi có độ dài xác định, bắt đầu từ một vị trí nhất định trong chuỗi đầu vào. Mục đích của chuỗi con là trả về một phần cụ thể của chuỗi.