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