1
$sql = "SELECT min(id) FROM matchTrip where userTripId = :tripId AND 
matchStrength = (SELECT MIN(matchStrength) FROM matchTrip where userTripId = :tripId) ";

是否可以减少此查询以便提高性能并减少执行此查询的时间?

任何帮助将不胜感激。

4

2 回答 2

3

您正在寻找 的最小值 的id最小值matchStrength。因此,您可以这样做:

SELECT 
  id 
FROM 
  matchTrip 
WHERE 
  userTripId = :tripId 
ORDER BY 
  matchStrength, 
  id 
LIMIT 1

在任何情况下,您都需要通过索引matchStrength(我认为您已经拥有它的id字段)。至于性能 - 你必须进行测量,没有其他方法可以确保一件事在性能方面比另一件事更好。

于 2013-09-05T12:30:41.080 回答
0
$sql = "SELECT id FROM matchTrip where userTripId = :tripId ORDER BY matchStrength, id LIMIT 1"; 
于 2013-09-05T12:33:14.737 回答