$sql = "SELECT min(id) FROM matchTrip where userTripId = :tripId AND
matchStrength = (SELECT MIN(matchStrength) FROM matchTrip where userTripId = :tripId) ";
是否可以减少此查询以便提高性能并减少执行此查询的时间?
任何帮助将不胜感激。
答案 0 :(得分:3)
您正在寻找id
的最小值matchStrength
的最小值。因此,您可以这样做:
SELECT
id
FROM
matchTrip
WHERE
userTripId = :tripId
ORDER BY
matchStrength,
id
LIMIT 1
在任何情况下,您都需要通过matchStrength
获得索引(我认为您已经将其用于id
字段)。至于性能 - 你必须采取措施,没有其他方法可以确保在性能方面有一件事比另一件更好。
答案 1 :(得分:0)
$sql = "SELECT id FROM matchTrip where userTripId = :tripId ORDER BY matchStrength, id LIMIT 1";