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

Ranh giới từ trong MySQL REGEXP [[:<:]] [[:>:]] và dấu ngoặc kép

Hãy để tôi trích dẫn tài liệu đầu tiên:

Từ tài liệu, chúng tôi có thể thấy lý do đằng sau sự cố của bạn và nó không phải do thoát bất kỳ điều gì gây ra. Vấn đề là bạn đang cố gắng đối sánh ranh giới từ [[:<:]] ngay ở đầu chuỗi sẽ không hoạt động vì ranh giới từ như bạn có thể thấy từ tài liệu phân tách một ký tự từ khỏi một ký tự không phải từ, nhưng trong trường hợp của bạn, ký tự đầu tiên là " không phải là một ký tự từ nên không có ranh giới từ, điều này cũng xảy ra với " cuối cùng và [[:>:]] .

Để tính năng này hoạt động, bạn cần thay đổi một chút biểu thức của mình thành biểu thức sau:

"[[:<:]]word[[:>:]]"
 ^^^^^^^    ^^^^^^^

Lưu ý cách ranh giới từ phân tách một ký tự không phải từ " từ một ký tự từ w ở phần đầu và một " từ d ở cuối chuỗi.

CHỈNH SỬA: Nếu bạn luôn muốn sử dụng ranh giới từ ở đầu và cuối chuỗi mà không biết liệu có ranh giới thực hay không thì bạn có thể sử dụng biểu thức sau:

([[:<:]]|^)"word"([[:>:]]|$)

Điều này sẽ khớp với ranh giới từ ở phần đầu hoặc phần đầu của chuỗi ^ và tương tự đối với phần cuối của ranh giới từ hoặc phần cuối của chuỗi. Tôi thực sự khuyên bạn nên nghiên cứu dữ liệu bạn đang cố gắng đối sánh và tìm kiếm các mẫu phổ biến và không sử dụng cụm từ thông dụng nếu chúng không phải là công cụ phù hợp cho công việc.

SQL Fiddle Demo



  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 lấy Tên người giám sát thay vì UserID + INNER JOIN trong MYSQL

  2. Làm cách nào để lấy kiểu dữ liệu cột của bảng mysql?

  3. Sử dụng MySql, tôi có thể sắp xếp một cột nhưng có số 0 ở cuối cùng không?

  4. mysql chọn các hàng riêng biệt thành một cột danh sách được phân tách bằng dấu phẩy

  5. Đối chiếu có nghĩa là gì?