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

mysql chọn trong danh sách với regexp / chuỗi con

Đây là một hoạt động JOIN với một chậm không thể phân tích được khó chịu ON điều kiện.

SELECT B.description
  FROM A
  JOIN B ON B.description LIKE CONCAT('%', A.code, '%')

Nó chậm vì 'needle' LIKE '%haystack%' có nghĩa là MySQL phải xem xét mọi thứ trong đống cỏ khô để tìm kim.

Mặt khác, 'needle' LIKE 'haystack%' (không có % đứng đầu ) can sử dụng một chỉ mục. Vì vậy, nếu điều này hoạt động trong dữ liệu của bạn, bạn nên sử dụng nó.

SELECT B.description
  FROM A
  JOIN B ON B.description LIKE CONCAT('FAX', A.code, '%')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Tạo bảng nội tuyến trong câu lệnh select?

  2. Hibernate mã hóa sai trong khi các đối tượng vẫn tồn tại [UTF-8]

  3. mysql không tôn trọng cài đặt wait_timeout trong my.cnf

  4. bản ghi hoạt động codeigniter nhận truy vấn và truy vấn mà không có mệnh đề LIMIT

  5. Lấy tên và giá trị cột trong vòng lặp for PHP