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

Cách viết truy vấn MySQL trong đó A chứa (a hoặc b)

Hai tùy chọn:

  1. Sử dụng LIKE từ khóa, cùng với các dấu phần trăm trong chuỗi

    select * from table where field like '%a%' or field like '%b%'.
    

    (lưu ý:Nếu chuỗi tìm kiếm của bạn chứa các dấu phần trăm, bạn cần phải thoát khỏi chúng)

  2. Nếu bạn đang tìm kiếm sự kết hợp phức tạp của nhiều chuỗi hơn bạn đã chỉ định trong ví dụ của mình, bạn có thể biểu thức chính quy (regex):

    Xem hướng dẫn sử dụng MySQL để biết thêm về cách sử dụng chúng: http:/ /dev.mysql.com/doc/refman/5.1/en/regexp.html

Trong số này, sử dụng LIKE là giải pháp thông thường nhất - đó là SQL tiêu chuẩn và được sử dụng phổ biến. Regex ít được sử dụng hơn nhưng mạnh hơn nhiều.

Lưu ý rằng bất kỳ tùy chọn nào bạn sử dụng, bạn cần phải biết về các tác động có thể có về hiệu suất. Tìm kiếm các chuỗi con như thế này sẽ có nghĩa là truy vấn sẽ phải quét toàn bộ bảng. Nếu bạn có một bảng lớn, điều này có thể tạo ra một truy vấn rất chậm và việc lập chỉ mục sẽ không giúp ích được gì.

Nếu đây là vấn đề đối với bạn và bạn sẽ cần phải tìm kiếm lặp đi lặp lại những thứ giống nhau, bạn có thể muốn làm điều gì đó như thêm trường cờ vào bảng để chỉ định rằng trường chuỗi chứa con liên quan dây. Nếu bạn luôn cập nhật trường cờ này khi bạn chèn bản ghi cập nhật, bạn có thể chỉ cần truy vấn cờ khi bạn muốn tìm kiếm. Điều này có thể được lập chỉ mục và sẽ làm cho truy vấn của bạn nhanh hơn nhiều. Việc đó có xứng đáng hay không là tùy thuộc vào bạn, điều đó sẽ phụ thuộc vào mức độ tồi tệ của hiệu suất khi sử dụng LIKE .



  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ó thể tạo bao nhiêu bảng trong cơ sở dữ liệu mysql?

  2. Mã lỗi:2013. Mất kết nối với máy chủ MySQL trong khi truy vấn

  3. MySQL - LÀM THẾ NÀO ĐỂ ĐẶT HÀNG THEO TƯƠNG QUAN? Bảng INNODB

  4. Cách hoạt động của hàm REGEXP_LIKE () trong MySQL

  5. Mệnh đề WHERE trong câu lệnh INSERT sử dụng mysql / php