我在这里读了一些文章,他们没有回答我的问题。我意识到IN
是一个缓慢的条款,但在我的情况下,我无法想办法使用它。
这是我的MYSQL查询:
$query = "SELECT DISTINCT(t.id) as id, t.t_name as name, t.t_city as city,
(count(pd.rs)) as pdc FROM #__bl_teams as t Left JOIN #__bl_paid as pd ON pd.t_id = t.id
AND pd.rs=1 AND ((MID(pd.r_date,1,10)) >= t.start_date)
WHERE(t.id IN($teams))
GROUP BY t.id ORDER BY name ASC";
$db->setQuery($query);
$players = $db->loadObjectList();
我的问题是Where (t.id IN $teams)
$teams
是以逗号分隔的字符串中的600个项目。
执行查询的时间太长了。任何想法如何解决“IN”条款?