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

Tìm kiếm toàn bộ bảng trong mySQL để tìm một chuỗi

Hãy thử một cái gì đó như sau:

SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"

Bạn có thể muốn xem tài liệu SQL để biết thêm thông tin về toán tử chuỗi và biểu thức chính quy.

Chỉnh sửa:Có thể có một số vấn đề với trường NULL, vì vậy đề phòng bạn có thể muốn sử dụng IFNULL(field_i, '') thay vì chỉ field_i

Phân biệt chữ hoa chữ thường :Bạn có thể sử dụng đối chiếu không phân biệt chữ hoa chữ thường hoặc tương tự như sau:

... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")

Chỉ cần tìm kiếm tất cả các trường :Tôi tin rằng không có cách nào để tạo một truy vấn SQL sẽ tìm kiếm qua tất cả các trường mà không khai báo rõ ràng trường để tìm kiếm. Lý do là có một lý thuyết về cơ sở dữ liệu quan hệ và các quy tắc nghiêm ngặt để thao tác dữ liệu quan hệ (chẳng hạn như đại số quan hệ hoặc đại số codd; đây là những gì từ SQL) và lý thuyết không cho phép những thứ như "chỉ tìm kiếm tất cả các trường". Tất nhiên hành vi thực tế phụ thuộc vào nhận thức cụ thể của nhà cung cấp. Nhưng trong trường hợp phổ biến thì không thể. Để chắc chắn, hãy kiểm tra SELECT cú pháp toán tử (WHERE , chính xác là).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn một hàng trong MySQL

  2. Cú pháp SQL DROP TABLE - Được DBMS liệt kê

  3. Một số có thể được sử dụng để đặt tên cho một cột bảng MySQL không?

  4. MySQL (hay PHP?) Nhóm kết quả theo dữ liệu trường

  5. Nhập dữ liệu từ cơ sở dữ liệu MySQL vào khung dữ liệu Pandas bao gồm tên cột