10
我想创建一个使用原则的加权搜索。这是我如何在直接SQL中做到这一点。我想知道如何将它转换为我们的doctrine2方法。我正在尝试使用symfony2进行搜索。如何将一个复杂的MySQL查询转换为Doctrine2
此外,如果有更好的方式来做到这一点,我愿意这样做。谢谢。
"SELECT *,
IF(`name` LIKE "%$searchterm%", 20,
IF(`name` LIKE "%$searchterm%", 10, 0)) +
IF(`address` LIKE "%$searchterm%", 5, 0) +
IF(`city` LIKE "%$searchterm%", 1, 0)
AS `weight`
FROM `table_name`
WHERE
(`name` LIKE "%$searchterm%" OR
`address` LIKE "%$searchterm%" OR
`city` LIKE "%$searchterm%")
ORDER BY `weight` DESC
LIMIT 20"
谢谢你,工作几乎完美,我需要知道如何做的唯一的事情就是它做的通配符%的LIKE搜索。我试过%:searchterm%,但它不是那样的。 – chasen 2012-03-21 16:00:27
没关系,我明白了。只需改变 - > setParameter('searchterm',$ searchterm)to - > setParameter('searchterm','%'。$ searchterm。'%') – chasen 2012-03-21 16:24:28
'CASE'语法也适用于Doctrine2查询构建器。非常感谢。 – 2014-09-30 12:22:43