Find_in_set[string,str list] là một hàm Chuỗi của MySQL. Phương thức này trả về giá trị của chuỗi được đưa ra ở vị trí đầu tiên trong đối số
cú pháp
ví dụ 1
đầu ra
ví dụ 2
đầu ra
ví dụ 3
đầu ra
Hàm FIND_IN_SET của Ngôn ngữ truy vấn có cấu trúc hiển thị vị trí của chuỗi được tìm kiếm trong nhiều chuỗi
Cú pháp của hàm chuỗi FIND_IN_SET
Cú pháp1. Cú pháp này sử dụng hàm FIND_IN_SET với hai hoặc nhiều tên cột của bảng SQL
Trong cú pháp Find_In_Set, chúng ta phải chỉ định tên của các cột mà chúng ta muốn tìm kiếm một chuỗi
Cú pháp2. Cú pháp này sử dụng hàm FIND_IN_SET với chuỗi
Cú pháp3. Cú pháp này sử dụng hàm FIND_IN_SET với ký tự riêng lẻ
Ví dụ về Hàm chuỗi FIND_IN_SET
ví dụ 1. Truy vấn bên dưới hiển thị vị trí của ký tự 'S' trong danh sách ký tự đã cho
đầu ra
ví dụ 2. Câu lệnh dưới đây cho biết vị trí của ký tự 'u' trong chuỗi Chúc mừng
CHỌN FIND_IN_SET[ 'u', ''C, o, n, g, r, a, t, u, l, a, t, i, o, n, s ''] AS Wishes u_Findinset;
đầu ra
ví dụ 3. Truy vấn CHỌN sau tìm vị trí của chuỗi 'Mới' trong danh sách các chuỗi
đầu ra
Ví dụ 4. Ví dụ này sử dụng hàm FIND_IN_SET với bảng trong Ngôn ngữ truy vấn có cấu trúc
Trong ví dụ này, chúng ta phải tạo một bảng SQL mới qua đó chúng ta sẽ thực thi hàm FIND_IN_SET[] trên các cột
Cú pháp tạo bảng mới trong cơ sở dữ liệu SQL như sau
Câu lệnh CREATE sau đây tạo bảng Student_Grade
Các truy vấn INSERT bên dưới chèn các bản ghi của học sinh có điểm và điểm vào bảng Student_Grade
Câu lệnh SELECT sau hiển thị các bản ghi đã chèn của bảng Student_Grade ở trên
Roll_NoFirst_NameLast_NameFirst_CitySecond_CityNew_CityHindi_MarksMaths_MarksGrade10AmanSharmaLucknowChandigarhGhaziabad8895A202VishalSharmaChandigarhGhaziabadGhaziabad9582A107RajGuptaDelhiGhaziabadLucknow9195A104YashSinghaniaGhaziabadDelhiLucknow8582A211VinayRoyDelhiKanpurGhaziabad9597A116ManojGuptaGhaziabadMeerutChandigarh9590B119RamGuptaLucknowGhaziabadChandigarh8995A2
truy vấn 1. Truy vấn SELECT sau đây sử dụng hàm FIND_IN_SET với các cột First_City, Second_City, New_City của bảng Student_Grade ở trên
Câu lệnh SQL này hiển thị vị trí của thành phố Ghaziabad trong ba cột đã cho của bảng
đầu ra
First_CitySecond_CityNew_CityGhaziabad_FindinsetLucknowChandigarhGhaziabad3ChandigarhGhaziabadGhaziabad3DelhiGhaziabadLucknow2GhaziabadDelhiLucknow1DelhiKanpurGhaziabad3GhaziabadMeerutChandigarh1LucknowGhaziabadChandigarh2
truy vấn 2. Truy vấn SELECT sau đây sử dụng hàm FIND_IN_SET với cột Hindi_Marks và Maths_Marks của những Học sinh có Roll_No lớn hơn 2 trong bảng Student_Grade ở trên
Nhưng họ không. Bạn có thể nhầm lẫn với chúng hoặc không biết khi nào nên sử dụng IN[] hoặc FIND_IN_SET[]. Có tình huống cụ thể cho cả hai chức năng MySQL
Để hiểu rõ hơn, hãy giả sử một người dùng bảng
Bàn. người sử dụng
userridnameagefav_color1Hitesh Shrimali29Xanh lục, Xanh lam2Jeetendra Sharma 31Xanh lam, Hồng3Ram Singh29Đỏ, Xanh lam- Hàm mysql IN[]
Hàm này được sử dụng khi chúng ta muốn so sánh trường [chứa một giá trị] với danh sách các giá trị trong cơ sở dữ liệu
1
Ví dụ – Chọn * Từ người dùng Where userid IN [1, 2];
Kết quả – truy vấn sẽ trả về 2 hàng với userid 1 và 2
- hàm mysql FIND_IN_SET[]
Hàm này được sử dụng khi bất kỳ trường nào chứa các giá trị được phân tách bằng dấu phẩy trong đó và chúng tôi muốn so sánh nó với một giá trị
Hàm FIND_IN_SET[] của MySQL là một hàm chuỗi MySQL tích hợp chịu trách nhiệm khám phá vị trí của một chuỗi cụ thể đã cho được cung cấp trong danh sách các chuỗi được phân tách bằng dấu phẩy. Hàm FIND_IN_SET[] chấp nhận hai đối số cho phép khớp giá trị đầu tiên với giá trị thứ hai chứa danh sách các giá trị dưới dạng chuỗi con được phân tách bằng ký tự dấu phẩy
Nói chung, hàm FIND_IN_SET[] áp dụng cho bất kỳ trường nào trong bảng cơ sở dữ liệu với một chuỗi giá trị được phân biệt bằng dấu phẩy. Điều này là do người dùng muốn thực hiện so sánh các giá trị đó với một giá trị cụ thể. Do đó, nó trả về chỉ mục của chuỗi phù hợp trong danh sách
Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn
Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác
cú pháp
Sau đây là cấu trúc cú pháp minh họa việc sử dụng hàm FIND_IN_SET[] trong máy chủ MySQL
FIND_IN_SET[string1, stringlist];
Hãy để chúng tôi mô tả hai tham số đã cho được hàm FIND_IN_SET[] chấp nhận
Gói khoa học dữ liệu tất cả trong một[360+ khóa học, hơn 50 dự án]
Giá
Xem khóa học
360+ Khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 7 [83.410 lượt xếp hạng]
- Tham số ban đầu có tên string1 xác định chuỗi mà bạn cần tìm
- Tham số tiếp theo có tên stringlist biểu thị danh sách các chuỗi được phân biệt bằng dấu phẩy sẽ được kiểm tra
Theo giá trị của các đối số hàm, MySQL FIND_IN_SET[] sẽ trả về giá trị dưới dạng số nguyên hoặc NULL
- Nếu một trong hai tham số của hàm, i. e. string1 hoặc stringlist, có giá trị NULL thì hàm trả về giá trị là NULL
- Nếu danh sách chuỗi tham số chứa một chuỗi trống hoặc tham số string1 không có trong danh sách chuỗi thì hàm trả về 0 làm giá trị đầu ra
- Nếu tham số string1 có sẵn trong stringlist thì hàm trả về giá trị nguyên dương
Nhưng lưu ý rằng nếu chuỗi1 bao gồm dấu phẩy [,], thì hàm FIND_IN_SET[] không hoạt động bình thường khi thực thi. Hơn nữa, nếu tham số string1 là một chuỗi không đổi và danh sách chuỗi tham số khác biểu thị một cột kiểu SET, thì máy chủ MySQL sẽ thực hiện tối ưu hóa số học bit
Hàm FIND_IN_SET[] hoạt động như thế nào trong MySQL?
MySQL bao gồm nhiều cơ sở dữ liệu và cơ sở dữ liệu bao gồm các bảng khác nhau. Các bảng này chứa dữ liệu ở dạng các loại dữ liệu được MySQL hỗ trợ khác nhau, trong đó hầu hết các số nguyên và chuỗi được sử dụng phổ biến nhất
Khi người dùng MySQL muốn tìm hiểu xem một chuỗi cụ thể có thoát trong bất kỳ chuỗi chuỗi nhất định nào được chia cho ký hiệu dấu phẩy [,] nhằm thực hiện bất kỳ truy vấn nào hay không, thì có thể áp dụng hàm chuỗi MySQL tích hợp FIND_IN_SET[]
Hàm này cung cấp giá trị cần thiết tùy thuộc vào kết quả tìm kiếm. Ví dụ: giả sử chúng ta đang minh họa truy vấn sau để chỉ ra cách thức hoạt động của hàm trong MySQL
Chúng tôi sẽ tìm kiếm một chuỗi con h trong danh sách các chuỗi bằng cách sử dụng câu lệnh bên dưới,
SELECT FIND_IN_SET[“h”, “g,h,k,l”];
Ở đây, chúng ta sử dụng câu lệnh SELECT với hàm FIND_IN_SET[] để đánh giá và hiển thị giá trị trả về. Kết quả từ truy vấn trên là đúng vì tham số đầu tiên 'h' có trong danh sách dưới dạng tham số thứ hai. Vì vậy, hàm khi thực thi sẽ xuất ra một số nguyên dương là 2 vì giá trị đầu tiên của hàm FIND_IN_SET[] được tìm thấy trong chỉ mục thứ hai của danh sách các giá trị trong tham số thứ hai của hàm, i. e. 'g,h,k,l'
Tương tự, nếu chúng ta thực hiện truy vấn bên dưới thì hàm trả về 0 làm giá trị đầu ra vì giá trị không có trong danh sách
SELECT FIND_IN_SET[“b”, “g,h,k,l”];
Ngoài ra, khi chúng ta xác định truy vấn như sau, đầu ra là NULL vì tham số thứ hai là NULL
SELECT FIND_IN_SET[“h”, NULL];
Do đó, chúng ta có thể xác định vị trí của một chuỗi trong một danh sách các chuỗi con cụ thể được cung cấp từ các bảng cơ sở dữ liệu
Mặt khác, toán tử MySQL IN lấy bất kỳ số lượng đối số nào để hiển thị nếu một giá trị được khớp với bất kỳ giá trị nào trong một tập hợp
Ví dụ về MySQL FIND_IN_SET[]
Hãy để chúng tôi chứng minh một số ví dụ sử dụng MySQL FIND_IN_SET[] như sau
Ví dụ 1
Ví dụ lấy dữ liệu từ một bảng bằng hàm FIND_IN_SET[] của MySQL
Giả sử chúng ta có một bảng có tên là bộ sưu tập được tạo trong cơ sở dữ liệu của mình bằng truy vấn bên dưới
CREATE TABLE IF NOT EXISTS Collection [ColID INT AUTO_INCREMENT PRIMARY KEY, ColName VARCHAR[255] NOT NULL, Subjects VARCHAR[255] NOT NULL];
Ngoài ra, hãy để chúng tôi nhập một số hàng bản ghi vào bảng Bộ sưu tập đã tạo
INSERT INTO Collection [ColName, Subjects] VALUES['o-1','Computers, Maths, Science'],['o-2','Networks, Maths, MySQL'],['o-3',' Computers, English, Data Science'],['o-4','Electric, Maths, Science'],['o-5','Computers, MySQL, English'],['o-6','Science, Web Design'],['o-7','Maths, Science'],['o-8','MySQL, Web Design'],['o-9','Computers'];
Hiển thị nội dung của bảng như sau
SELECT * FROM Collection;
đầu ra
Bây giờ, chúng ta sẽ tìm bộ sưu tập chấp nhận môn Toán bằng cách sử dụng hàm MySQL FIND_IN_SET[] được hiển thị bên dưới
SELECT ColName, Subjects FROM Collection WHERE FIND_IN_SET['Computers', Subjects];
đầu ra
Như bạn có thể thấy trong kết quả ở trên, truy vấn đã tìm kiếm chuỗi Maths trong danh sách các giá trị từ cột Chủ đề của bảng.
Tìm một ví dụ đơn giản và kết quả của nó như sau.
________số 8
đầu ra
Hàm FIND_IN_SET[] cung cấp vị trí của đối số đầu tiên 'h' như được tìm thấy trong chuỗi giá trị làm đối số thứ hai của hàm
Ví dụ #2
Ví dụ cho thấy tính tiêu cực của hàm FIND_IN_SET[] của MySQL
Tính đến bảng trước đó, chúng tôi sẽ hiển thị giá trị kết quả của hàm là trống khi MySQL trả về false nếu không tìm thấy chuỗi con trong các giá trị danh sách làm đối số thứ hai. Như vậy, ở đây để phủ định hàm FIND_IN_SET[] của MySQL, chúng ta sẽ áp dụng toán tử MySQL NOT. Cuối cùng, chúng tôi sẽ minh họa ví dụ truy vấn với hàm FIND_IN_SET[] cũng sử dụng toán tử NOT để tìm kiếm bộ sưu tập không khớp với chủ đề PHP trong các giá trị bảng
SELECT ColName, Subjects FROM Collection WHERE FIND_IN_SET['PHP', Subjects];
đầu ra
Như bạn có thể thấy rằng không có đầu ra nào được tạo ra dưới dạng một tập hợp vì trong danh sách các giá trị từ cột Chủ đề, hàm FIND_IN_SET[] không tìm thấy bất kỳ chuỗi con khớp nào như đã cho trong đối số đầu tiên
Ví dụ #3
Sự khác biệt giữa toán tử IN và FIND_IN_SET[]
Toán tử IN xác định liệu một chuỗi con có khớp với bất kỳ tập hợp chuỗi con hoặc danh sách nào hay không và có thể chấp nhận bất kỳ số lượng đối số nào được phân tách bằng dấu phẩy như sau
SELECT FIND_IN_SET[“h”, “g,h,k,l”];
0
đầu ra
Tương tự, sử dụng hàm FIND_IN_SET[] sẽ cho kết quả đầu ra giống như truy vấn IN nhưng chỉ cần hai tham số để hiển thị giá trị khớp với danh sách các giá trị được chia cho dấu phẩy
SELECT FIND_IN_SET[“h”, “g,h,k,l”];
1
đầu ra
Sự kết luận
Hàm FIND_IN_SET[] của MySQL cho phép máy chủ được sử dụng để kiểm tra xem một chuỗi con làm đối số đầu tiên có trong danh sách các giá trị bao gồm các chuỗi con trong đối số thứ hai được phân tách bằng dấu phẩy hay không
Hàm này, khi giá trị được tìm kiếm, sẽ trả về kết quả dựa trên các giá trị đó dưới dạng số nguyên dương như vị trí [nếu giá trị tồn tại trong danh sách], 0 [nếu không tìm thấy giá trị] hoặc NULL [nếu bất kỳ đối số nào là NULL], mà
Bài viết được đề xuất
Đây là hướng dẫn về MySQL FIND_IN_SET[]. Ở đây chúng ta thảo luận về cách hàm FIND_IN_SET[] hoạt động trong MySQL và các ví dụ cùng với kết quả. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –