问 题
我在doctrine的dql中有一个查询,需要能够使用mysql的"force index"功能,以便大大减少查询时间。以下是在纯sql中基本上看起来的内容:
select id from items force index(best_selling_idx)
where price = ...(etc)
limit 200;
我假设我必须扩展一些doctrine组件才能使用dql(或者在那里)一种将任意sql注入到doctrin的查询之一中的方法)。任何人都有任何想法?
谢谢!
解决方案
发现很少有用的doctrine_rawsql示例在线,所以这里是我最后做的来创建我的查询。
$ q = new doctrine_rawsql );
$ q-gt; select('{b.id},{b.description},{c.description}')
- gt; from('table1 b force index(best_selling_idx)inner join table2 c on b.c_id = c.id')
- gt; addcomponent('b','table1 b')
- gt; addcomponent('c','b.table2 c' ;