問題描述
我目前正在將一個(gè)大項(xiàng)目轉(zhuǎn)移到 Laravel 框架 http://hobbyathletes.com/events/south-america/all-event-types/all/.我需要遷移我的內(nèi)部搜索引擎,它使用以下查詢(如果搜索一個(gè)詞,這里有額外的預(yù)選選項(xiàng)南美洲):
I'm currently transfering a big project to Laravel framework http://hobbyathletes.com/events/south-america/all-event-types/all/. I need to migrate my internal searchengine, which uses the following query (if searched for one word, here additional pre-selected option 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
如何將此查詢轉(zhuǎn)移到 Eloquent Query builder?我已經(jīng)嘗試過 DB:raw($query)
這似乎不起作用......嘗試使用的是非常需要的 ->paginate(25)
和 ->get()
,都不起作用.這里的任何人都可以讓我朝著正確的方向前進(jìn)嗎?
How can I transfer this query to Eloquent Query builder? I tried already DB:raw($query)
which seems not to work... Tried is with the much needed ->paginate(25)
and with ->get()
, all not working. Anyone here can put me in the right direction?
推薦答案
Try with DB::select()
Try with DB::select()
DB::select(DB::raw("
SELECT * FROM bla bla bla
"));
這篇關(guān)于Laravel 中的原始相關(guān)性查詢.如何處理?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!