Tôi có một hộp tìm kiếm mà tôi muốn tìm kiếm 6 cột trong cơ sở dữ liệu trường học của tôi khi một đầu vào được thực hiện. Cho đến nay, hộp tìm kiếm chỉ tìm kiếm trường tên và trả về kết quả khớp chính xác hoặc một phần.tìm kiếm nhiều cột với một hoặc nhiều từ khóa bằng cách sử dụng sql
Tôi muốn tìm kiếm thành phố cụ thể và có tất cả kết quả hiển thị từ tên VÀ cột thành phố (thay vì chỉ cột tên) v.v.
Giả sử tôi muốn tìm kiếm bằng mã zip, tôi muốn danh sách là tất cả các trường trong mã zip đó. Và cuối cùng nếu tôi nhập 2 từ (ví dụ: penn Philadelphia), tôi muốn tất cả các trường penn chỉ hiển thị trong cột tên VÀ cột thành phố. (không chỉ tất cả các penns trong tên hoặc mỗi trường ở Philadelphia) và như vậy. Đây có thể là một câu hỏi cơ bản về vấn đề này nhưng tôi đã tìm kiếm những ngày không thành công. Có thể sử dụng tốt hơn các ký tự đại diện và các mệnh đề "AND" "HOẶC" sẽ có lợi cho tôi.
Ai đó có thể giúp tôi cấu trúc truy vấn sql để thực hiện việc này không?
đây là những gì tôi có cho đến nay:
SELECT * FROM schools
WHERE (name='%name%' OR address='%name%' OR city='%name%'OR zip='%name%')
bạn có thể sử dụng nhiều phương pháp: ví dụ để có "penn" và "philadelphia" bạn có thể làm: 'SELECT * FROM trường WHERE name = 'penn' AND city = 'philadelphia' ; 'bạn có thể kết hợp một vài điều kiện với nhau. Một cách tiếp cận khác: 'SELECT * FROM school s1, trường s2 JOIN ON s1.name = s2.name WHERE s1.name = 'penn' AND s1.city = 'philadelphia';' ở đây bạn cũng có thể sử dụng nhiều phép nối không đi hoang dã với nó nhưng có một chỉ số tốt giúp sau này mạnh mẽ – Hamed
Ngoài ra còn có một cách tiếp cận mà bạn có thể sử dụng một vài SELECT lồng nhau (không được khuyến khích), như bạn làm: 'SELECT * FROM trường WHERE (SELECT * FROM trường WHERE name = ' penn ') AS s1 VÀ thành phố =' philadelphia '; '. Đừng đi quá sâu về điều này vì nó sẽ trở nên khó chịu. Chọn những gì phù hợp với bạn tốt nhất – Hamed
@RyanVincent tốt nó không thực sự là một câu trả lời thích hợp giống như một vài lời khuyên – Hamed