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à).