我目前正在将一个大项目转移到 Laravel 框架http://hobbyathletes.com/events/south-america/all-event-types/all/。我需要迁移我的内部搜索引擎,它使用以下查询(如果搜索一个单词,此处附加预选选项 South America ):
SELECT *, (
(CASE WHEN name LIKE '%searchthis%' THEN 1000 ELSE 0 END) +
(CASE WHEN name LIKE 'searchthis %' THEN 10 ELSE 0 END) +
(CASE WHEN name LIKE 'searchthis%' THEN 1 ELSE 0 END) +
(CASE WHEN name LIKE '% searchthis %' THEN 5 ELSE 0 END) +
(CASE WHEN city LIKE '%searchthis%' THEN 500 ELSE 0 END) +
(CASE WHEN city LIKE 'searchthis%' THEN 10 ELSE 0 END) +
(CASE WHEN city LIKE 'searchthis %' THEN 1 ELSE 0 END) +
(CASE WHEN city LIKE '% searchthis %' THEN 5 ELSE 0 END) +
(CASE WHEN country LIKE '%searchthis%' THEN 500 ELSE 0 END) +
(CASE WHEN country LIKE 'searchthis%' THEN 10 ELSE 0 END) +
(CASE WHEN country LIKE 'searchthis %' THEN 1 ELSE 0 END) +
(CASE WHEN country LIKE '% searchthis %' THEN 5 ELSE 0 END) +
(CASE WHEN homepage LIKE '%searchthis%' THEN 600 ELSE 0 END) +
(CASE WHEN headline LIKE '%searchthis%' THEN 100 ELSE 0 END) +
(CASE WHEN headline LIKE 'searchthis%' THEN 10 ELSE 0 END) +
(CASE WHEN headline LIKE 'searchthis %' THEN 1 ELSE 0 END) +
(CASE WHEN headline LIKE '% searchthis %' THEN 5 ELSE 0 END) +
(CASE WHEN description LIKE '%searchthis%' THEN 100 ELSE 0 END) +
(CASE WHEN description LIKE 'searchthis%' THEN 10 ELSE 0 END) +
(CASE WHEN description LIKE 'searchthis %' THEN 1 ELSE 0 END) +
(CASE WHEN description LIKE '% searchthis %' THEN 5 ELSE 0 END) +
(CASE WHEN distances LIKE '%searchthis%' THEN 100 ELSE 0 END) +
(CASE WHEN distances LIKE 'searchthis%' THEN 10 ELSE 0 END) +
(CASE WHEN distances LIKE 'searchthis %' THEN 1 ELSE 0 END) +
(CASE WHEN distances LIKE '% searchthis %' THEN 5 ELSE 0 END) +
(CASE WHEN date LIKE '%2014%' THEN 300 ELSE 0 END) +
(CASE WHEN name LIKE '%2014%' THEN 200 ELSE 0 END) +
(CASE WHEN date LIKE '%2013%' THEN 200 ELSE 0 END) +
(CASE WHEN name LIKE '%2013%' THEN 100 ELSE 0 END)
)
AS relevance
FROM events
WHERE
(
country = 'Argentina' or
country = 'Bolivia' or
country = 'Brazil' or
country = 'Chile' or
country = 'Colombia' or
country = 'Ecuador' or
country = 'Guyana' or
country = 'Paraguay' or
country = 'Peru' or
country = 'Suriname' or
country = 'Uganda' or
country = 'Uruguay' or
country = 'Venezuela'
)
AND
(
name LIKE '%searchthis%' OR
country LIKE '%searchthis%' OR
city LIKE '%searchthis%' OR
homepage LIKE '%searchthis%' OR
headline LIKE '%searchthis%' OR
description LIKE '%searchthis%' OR
distances LIKE '%searchthis%'
)
ORDER BY relevance DESC
如何将此查询传输到 Eloquent 查询构建器?我已经尝试过了DB:raw($query)
这似乎不起作用...尝试过急需的->paginate(25)
与->get()
,全部不起作用。这里有人可以引导我走向正确的方向吗?
尝试使用 DB::select()
DB::select(DB::raw("
SELECT * FROM bla bla bla
"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)