$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字段建立了索引)。至于表现-你必须要做的措施,没有任何其他方法可以确保一件事比另一件更好的表现。

关于mysql - 如何减少此查询(SQL)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18636264/

10-11 01:47