Tôi muốn tìm kiếm bản ghi trong đó một trường cụ thể BẮT ĐẦU VỚI một số chuỗi (giả sử "ar") HOẶC trường đó CONTAINS chuỗi, "ar".Điều kiện trọng số trong mệnh đề WHERE của câu lệnh SQL
Tuy nhiên, tôi xem xét hai điều kiện khác nhau, vì tôi đang giới hạn số lượng kết quả được trả về 10 và tôi muốn điều kiện STARTS WITH được cân nặng hơn nhiều so với điều kiện CONTAINS.
Ví dụ:
SELECT *
FROM Employees
WHERE Name LIKE 'ar%' OR Name LIKE '%ar%'
LIMIT 10
Việc nắm bắt được đó là nếu có tên bắt đầu bằng "ar" họ nên được ưa chuộng. Cách duy nhất tôi nên lấy lại tên chỉ chứa "ar" là nếu có ít hơn 10 tên BẮT ĐẦU với "ar"
Làm cách nào tôi có thể thực hiện việc này đối với cơ sở dữ liệu MySQL?
+1. Đồng ý, điều này hiệu quả hơn. – mellamokb
Điều này dường như làm việc cho tôi. Bạn có thể giải thích nó không?Tôi hiểu (nói chung) nghĩa là gì. X và Y là gì, 1 và 2 là gì? –
@Stephen - X và Y chỉ là bí danh cho các truy vấn con (mỗi bảng dẫn xuất phải được đặt bí danh - để chúng có thể được tham chiếu nếu được yêu cầu). Bạn có thể thêm một cột vào bất kỳ tập kết quả nào, bằng cách chỉ đưa ra một giá trị và đặt tên (đánh dấu) cột. Trong trường hợp này, tôi đã thêm một cột có tên "Ưu tiên" với giá trị là 1 trong phần đầu tiên và giá trị là 2 trong phần thứ hai. Các cột bây giờ là một phần của kết quả (cho truy vấn). – RichardTheKiwi