1
好吧,我一直在使用這個工作一段時間,而且我有點卡住了。通過與多個LIKE子句完全匹配的mysql查詢順序
也許我正在做的一切都錯了!
基本上我有一個搜索字段的查詢。總體思路是根據LIKE %%選擇結果,同時仍然首先進行精確匹配。
因此,例如,如果您搜索47我希望47中的任何一個都在id,surname或company_name中顯示,但是如果我鍵入了姓氏,那麼帶有id號47的結果應該在頂部,並且是相同的。
請參閱下面的代碼,這可能有助於澄清我的問題。
SELECT id,
IF(company_name IS NOT NULL AND company_name <> '', company_name, surname) AS name,
first_name, country, phone1, isowner, isholidayrenter, isproholidayrenter,
islongtermrenter, isprolongtermrenter, isprobuyer, isbuyer
FROM clients
WHERE id LIKE '$search' OR surname LIKE '$search' OR company_name LIKE '$search'
union all
SELECT id,
IF(company_name IS NOT NULL AND company_name <> '', company_name, surname) AS name,
first_name, country, phone1, isowner, isholidayrenter, isproholidayrenter,
islongtermrenter, isprolongtermrenter, isprobuyer, isbuyer
FROM clients
WHERE id LIKE '%$search%' AND id NOT LIKE '$search' OR surname LIKE '%$search%'
and SURNAME NOT LIKE '$search' OR company_name LIKE '%$search%'
and company_name NOT LIKE '$search'
LIMIT $start, $limit";
`
絕對完美,非常感謝。我並不希望將它放在盤子上。 – traxwriter
這是我第一次去做,但我沒有足夠的代表點投票。 :( – traxwriter