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