bạn có thể đạt được điều này trong một truy vấn bằng cách sử dụng 'UNION ALL' trong MySQL.
Chỉ cần lặp qua các mã thông báo trong PHP để tạo một LIÊN KẾT TẤT CẢ cho mỗi mã thông báo:
ví dụ:nếu các mã thông báo là 'x', 'y' và 'z' thì truy vấn của bạn có thể trông giống như thế này
SELECT * FROM `entries`
WHERE token like "%x%" union all
SELECT * FROM `entries`
WHERE token like "%y%" union all
SELECT * FROM `entries`
WHERE token like "%z%" ORDER BY score ect...
Mệnh đề thứ tự phải hoạt động trên toàn bộ tập hợp kết quả làm một, đó là điều bạn cần.
Về mặt hiệu suất, nó sẽ không nhanh như vậy (tôi đoán vậy), tuy nhiên với cơ sở dữ liệu, chi phí chính về tốc độ thường là gửi truy vấn đến cơ sở dữ liệu từ PHP và nhận kết quả. Với kỹ thuật này, điều này chỉ xảy ra một lần thay vì một lần cho mỗi mã thông báo, vì vậy hiệu suất sẽ tăng lên, tôi chỉ không biết liệu nó có đủ không.