Hướng dẫn how to match comma separated values in mysql - cách khớp các giá trị được phân tách bằng dấu phẩy trong mysql

Câu hỏi này có thể nhìn thấy trên Google và có nhiều lượt xem, vì vậy tôi muốn chia sẻ cách tiếp cận của mình với vấn đề này. Tôi đã phải đối phó với một thiết kế kém như các giá trị được phân tách bằng dấu phẩy được lưu trữ như dây. Tôi đã gặp phải vấn đề này trong khi điều chỉnh plugin của CMS chịu trách nhiệm về các thẻ.

Vâng, các thẻ liên quan đến một bài viết trang web được lưu trữ như thế này: "Tag1, Tag2, ..., Tagn". Vì vậy, có được trận đấu chính xác không phải là tầm thường như ban đầu có thể xuất hiện: sử dụng LIKE đơn giản, với các bài viết được gắn thẻ "Ball" Tôi cũng có những người được gắn thẻ "bóng đá" và "phòng khiêu vũ". Không quan trọng, nhưng khá khó chịu.ball" I also got ones tagged "football" and "ballroom". Not critical, but rather annoying.

Hàm find_in_set lúc đầu có vẻ tuyệt vời nhưng sau đó hóa ra nó không sử dụng chỉ mục và không hoạt động đúng nếu đối số đầu tiên chứa ký tự dấu phẩy.

Tôi không có mong muốn thay đổi chính plugin hoặc chức năng CMS lõi sâu hơn mà plugin đã được xây dựng.

Ngoài ra, điều đáng chú ý là thẻ cần thiết [chuỗi con] có thể là phần đầu tiên, phần tử cuối cùng trong chuỗi hoặc có thể ở đâu đó ở giữa, vì vậy đoạn mã WHERE [',' + Categories + ','] LIKE '%,science,%' này không bao gồm cả ba trường hợp.

Cuối cùng, tôi đã kết thúc với giải pháp rất đơn giản. Nó làm việc cho tôi như thế này:

... WHERE tags LIKE 'ball,%' OR tags LIKE '%,ball,%' OR tags LIKE '%,ball'

Tất cả các trường hợp được bảo hiểm; Dấu phẩy được sử dụng làm phân định. Hy vọng nó giúp những người khác bắt gặp cạm bẫy tương tự.

PS. Tôi hoàn toàn không phải là chuyên gia MySQL/DB và tôi rất thích đọc về những hạn chế tiềm năng của phương pháp này, đặc biệt là trên các bảng thực sự rất lớn [đó không phải là trường hợp của tôi, btw]. Tôi chỉ chia sẻ kết quả nghiên cứu nhỏ của mình và những gì tôi đã làm để giải quyết vấn đề này với những nỗ lực tối thiểu.

Làm cách nào để chia một chuỗi trong mysql?

mysql> create table DemoTable
[
   `Values` varchar[50]
];
Query OK, 0 rows affected [1.15 sec]

Để phân chia một chuỗi trong MySQL, bạn cần sử dụng chức năng Subring_index do MySQL cung cấp. Hàm Subring_index [] cho phép bạn trích xuất một phần của chuỗi hoàn chỉnh. Cú pháp của hàm như sau: Subring_index [Biểu thức, Delimiter, Count]; 01-OCT-2021

mysql> insert into DemoTable values['23,45,78,56'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into DemoTable values['384,476,7456'];
Query OK, 1 row affected [0.12 sec]
mysql> insert into DemoTable values['68,8,88,89'];
Query OK, 1 row affected [0.10 sec]
mysql> insert into DemoTable values['78,80,84'];
Query OK, 1 row affected [0.19 sec]

Có một chức năng phân chia trong mysql?

mysql> select *from DemoTable;

Không có chức năng phân chia chuỗi trong MySQL. Vì vậy, bạn phải tạo chức năng của riêng bạn.

+--------------+
| Values       |
+--------------+
| 23,45,78,56  |
| 384,476,7456 |
| 68,8,88,89   |
| 78,80,84     |
+--------------+
4 rows in set [0.00 sec]

Làm thế nào chia nhiều giá trị phân tách dấu phẩy trong truy vấn SQL?

mysql> select *from DemoTable where find_in_set['8',`Values`]!=0;

Điều này sẽ tạo ra đầu ra sau -

+------------+
| Values     |
+------------+
| 68,8,88,89 |
+------------+
1 row in set [0.00 sec]

Cập nhật vào ngày 03 tháng 10 năm 2019 07:38:18

  • Câu hỏi và câu trả lời liên quan
  • Kiểm tra xem giá trị có tồn tại trong danh sách phân tách dấu phẩy trong MySQL không?
  • Làm thế nào tôi có thể tìm kiếm trong một bảng các giá trị được phân tách bằng dấu phẩy trong MySQL?
  • Làm thế nào để đặt một danh sách phân tách dấu phẩy làm bảng trong MySQL?
  • Hiển thị kết quả MySQL dưới dạng danh sách phân tách bằng dấu phẩy?
  • Tôi có thể tìm kiếm các số cụ thể trong cột MySQL với các bản ghi được phân tách bằng dấu phẩy bằng truy vấn MySQL không?
  • Tìm kiếm từ một dấu phẩy phân tách cột MySQL?
  • Hiển thị bản ghi trùng lặp như một giá trị riêng biệt với các giá trị tương ứng là danh sách phân tách dấu phẩy khác biệt trong MySQL?
  • Regex để tìm chuỗi và ký tự tiếp theo trong danh sách phân tách dấu phẩy - MySQL?
  • Làm thế nào bạn sẽ tạo một chuỗi được phân tách bằng dấu phẩy từ một danh sách trong Python?
  • Truy vấn MySQL để truy xuất các bản ghi từ một phần của danh sách được phân tách bằng dấu phẩy?
  • Truy vấn MySQL để nhận một giá trị duy nhất từ ​​vị trí của chuỗi được phân tách bằng dấu phẩy?
  • Đếm số lượng dấu phẩy trong mỗi bản ghi từ cột giá trị được phân tách bằng dấu phẩy trong MySQL
  • Chuyển đổi danh sách chuỗi thành chuỗi phân tách bằng dấu phẩy trong Java
  • Làm thế nào để phù hợp với một biểu thức chính quy với một chuỗi?
  • Làm thế nào để tạo một chuỗi phân tách bằng dấu phẩy từ danh sách chuỗi trong C#?

MySQL - Tìm trong chuỗi các giá trị phân tách bằng dấu phẩy với các ví dụ mã

Xin chào các bạn, trong bài đăng này, chúng tôi sẽ khám phá cách tìm giải pháp cho MySQL - tìm trong chuỗi các giá trị phân tách bằng dấu phẩy trong lập trình.

SELECT * FROM table WHERE FIND_IN_SET[table_column, string_of_comma_separated_values];

SELECT * FROM Students WHERE FIND_IN_SET['John, Jake, Micheal, Alan, Aaron'];

MySQL - Tìm trong chuỗi các giá trị phân tách bằng dấu phẩy đã được giải quyết bằng một số kịch bản, như chúng ta đã thấy.

Làm thế nào để tìm nạp dấu phẩy tách các giá trị trong SQL?

Để tìm nạp các giá trị dấu phẩy [phân định] khỏi quy trình được lưu trữ, bạn cần sử dụng một biến với kiểu dữ liệu và kích thước giống như tham số đầu ra và truyền nó làm tham số đầu ra bằng cách sử dụng từ khóa đầu ra.

Làm thế nào phân tách dấu phẩy tách các giá trị trong truy vấn SQL MySQL?

Bạn có thể sử dụng một tuyên bố đã chuẩn bị bên trong quy trình được lưu trữ để đạt được điều này. Bạn có thể tạo toàn bộ truy vấn được chọn làm chuỗi bên trong một biến và sau đó kết nối trong chuỗi phân đoạn dấu phẩy vào mệnh đề của nó. Sau đó bạn có thể thực hiện một câu lệnh đã chuẩn bị từ biến chuỗi truy vấn và thực thi nó.02-feb-2010

Làm thế nào tôi có thể nhận được nhiều giá trị hàng trong dấu phẩy được phân tách trong MySQL?

Cách đưa nhiều hàng vào danh sách phân tách bằng dấu phẩy trong SQL

  • Mysql. MySQL có chức năng Group_concat [] cho phép chúng tôi xuất kết quả truy vấn của mình trong danh sách phân tách dấu phẩy: chọn nhóm_concat [petName] từ vật nuôi;
  • Cơ sở dữ liệu Oracle.
  • Máy chủ SQL.
  • MariaDB.
  • PostgreSQL.
  • SQLite.
  • Nhiều cột.

Chúng ta có thể lưu trữ các giá trị phân tách dấu phẩy trong MySQL không?

Câu trả lời tốt hơn: Đừng lưu trữ danh sách các giá trị phân tách dấu phẩy. Lưu trữ một giá trị cho mỗi hàng và sử dụng truy vấn chọn với nhóm_concat để tạo giá trị phân tách bằng dấu phẩy khi bạn truy cập cơ sở dữ liệu.17-DEC-2009

Sự khác biệt giữa isnull và hợp kim là gì?

So sánh xác định loại dữ liệu hợp kim và isnull của biểu thức kết quả là khác nhau. Isnull sử dụng kiểu dữ liệu của tham số đầu tiên, hợp tác theo các quy tắc biểu thức trường hợp và trả về kiểu dữ liệu của giá trị với mức độ ưu tiên cao nhất.27-May-2022

Làm thế nào phân tách dấu phẩy phân tách các giá trị chuỗi thành các cột trong MySQL?

Làm cách nào để chia một chuỗi trong mysql?

Để phân chia một chuỗi trong MySQL, bạn cần sử dụng chức năng Subring_index do MySQL cung cấp. Hàm Subring_index [] cho phép bạn trích xuất một phần của chuỗi hoàn chỉnh. Cú pháp của hàm như sau: Subring_index [Biểu thức, Delimiter, Count]; 01-OCT-2021

Có một chức năng phân chia trong mysql?

Không có chức năng phân chia chuỗi trong MySQL. Vì vậy, bạn phải tạo chức năng của riêng bạn.

Làm thế nào chia nhiều giá trị phân tách dấu phẩy trong truy vấn SQL?

A] Sử dụng hàm String_Split [] để phân chia chuỗi giá trị được phân tách bằng dấu phẩy

  • Chọn Giá trị từ String_Split ['Đỏ, Xanh ,, Xanh lam', ','];
  • Chọn Giá trị từ String_Split ['Red, Green ,, Blue', ','] trong đó Trim [Giá trị] '';

Làm cách nào để chọn nhiều giá trị trong một cột trong SQL?

Lưu ý - Sử dụng để phù hợp với nhiều giá trị, tức là Toyota và Honda trong cùng một cột, tức là công ty. Cú pháp: Chọn * từ bảng_name trong đó cột_name in [matching_value1, matching_value2]; 29-oct-2021

Làm cách nào để tìm thấy các giá trị phân tách bằng dấu phẩy trong mysql?

Để kiểm tra xem giá trị có tồn tại trong danh sách phân tách dấu phẩy hay không, bạn có thể sử dụng hàm find_in_set []. Bây giờ bạn có thể chèn một số bản ghi trong bảng bằng lệnh chèn. Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh CHỌN.use FIND_IN_SET[] function. Now you can insert some records in the table using insert command. Display all records from the table using select statement.

Làm thế nào để bạn chọn các giá trị phân tách bằng dấu phẩy trong SQL?

Để tìm nạp các giá trị dấu phẩy [phân định] khỏi quy trình được lưu trữ, bạn cần sử dụng một biến với kiểu dữ liệu và kích thước giống như tham số đầu ra và truyền nó làm tham số đầu ra bằng cách sử dụng từ khóa đầu ra.make use of a variable with data type and size same as the Output parameter and pass it as Output parameter using OUTPUT keyword.

Làm thế nào tôi có thể nhận được nhiều giá trị hàng trong dấu phẩy được phân tách trong MySQL?

Làm thế nào để có được nhiều hàng vào danh sách phân tách dấu phẩy trong SQL..
Mysql.MySQL có chức năng Group_concat [] cho phép chúng tôi xuất kết quả truy vấn của mình trong danh sách phân tách dấu phẩy: chọn nhóm_concat [petName] từ vật nuôi;....
Cơ sở dữ liệu Oracle.....
Máy chủ SQL.....
Mariadb.....
Postgresql.....
Sqlite.....
Nhiều cột ..

Chúng ta có thể sử dụng dấu phẩy trong mệnh đề WHERE trong SQL không?

Nhiều nguồn được phân tách bằng dấu phẩy.Mệnh đề WHERE, được yêu cầu khi sử dụng cú pháp phân tách bằng dấu phẩy, tạo điều kiện lựa chọn cho sự tham gia.The WHERE clause, required when using comma-separated syntax, creates the selection condition for the join.

Bài Viết Liên Quan

Chủ Đề