0
什麼可能是使用關鍵字$ search搜索記錄集的最佳方式,並先顯示那些記錄,然後將其餘記錄拖入查詢中並讓它們隨機排序。換句話說,將搜索結果放在頂部,然後隨機存放剩餘的記錄。下面是我搜索的第一部分:首先關鍵字搜索,然後隨機顯示記錄集的其餘部分
SELECT first_name, last_name, title, agency, address,
phone, more_info, description, img_name, active
FROM realtor
WHERE MATCH as rank (first_name, last_name, agency, description)
AGAINST ('$search' IN BOOLEAN MODE)
ORDER BY rank DESC
,然後我想這UNION用剩餘的記錄集使用ORDER BY RAND() 還是有執行此查詢更好的辦法?這是我第一次嘗試UNION。
此外,我的排名似乎不工作,因爲如果我在fname lname搜索我沒有得到fname lname記錄第一,因爲許多記錄有標題列中的lname。有一個更好的方法嗎?感謝
我得到的第一部分,通過消除布爾模式下工作,我現在努力增加一組使用UNION ALL記錄的其餘部分。這裏是我到目前爲止$結果= mysql_query(「選擇姓,名,標題,機構,地址,電話,more_info,描述,img_name,活動從房地產經紀人在哪裏匹配(名字,姓氏,機構,描述)AGAINST搜索')聯合國所有選擇姓氏,姓氏,標題,機構,地址,電話,more_info,描述,img_name,活動從房地產經紀人不匹配(名,姓,代理,描述)反對('搜索')ORDER BY RAND )「); – studebaker 2012-02-08 15:34:31
請注意,您的方法可能會增加服務器負載(特別是大表)。你可以測試我提供的代碼沒有** HAVING relv> 0 **。然後,您將獲得所有匹配的行,然後在它們之後,您將擁有不相關的行。 )反對('$ search'在BOOLEAN模式)作爲relv 來自房地產經紀人 order by relv DESC ' – Huseyin 2012-02-08 19:06:44