10
私はdoctrineを使って重み付き検索を作成しようとしています。これは私がまっすぐ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
私はそれを得た。 – chasen
'CASE'構文は、Doctrine2クエリービルダーでも動作します。また、setParameter( 'searchterm'、$ searchterm)をsetParameter( 'searchterm'、 '%'。$ searchterm。 '%')どうもありがとう。 –