我想从我的分类数据库中搜索一些数据,假设我想搜索taj酒店,那么taj酒店应该位于顶部。但根据我使用过的查询,所有酒店都会被检索到,而taj酒店就在下一页或其他位置。 我的疑问是:
SELECT *
FROM tbl_user_products
WHERE (company_name='$a')
OR (product_name='$a')
OR ( company_name like '%$a%'
OR category like '%$a%'
OR subcategory like '%$a%'
OR title like '%$a%'
OR description like '%$a%'
OR website like '%$a%'
OR product_name like '%$a%')
AND (city='$cityselect')
LIMIT $startResults, $resultsPerPage
请建议我可以使用的东西
答案 0 :(得分:1)
尝试
order by FIELD(field_name,'taj') ;
答案 1 :(得分:1)
请说taj hotel
是title
中tbl_user_products
,然后您可以使用ORDER BY
ORDER BY FIELD(title,'$a') DESC
更新:
这里的字段是什么?请解释更多
手册说FIELD()
返回str1,str2,str3,...列表中str的索引(位置)。如果未找到str,则返回0
但是在{(1}}的情况下,ORDER BY
的第一个参数是表中的列名,而其他参数可以是自定义方式的值的顺序。
例如,如果您提供FIELD
,则会先显示标题为ORDER BY FIELD(title,'taj','park','continental',) DESC
的所有记录,然后显示continental
然后park
,然后按字母顺序
答案 2 :(得分:0)
如果您想搜索特定城市的所有酒店,则不应在字段上添加条件,其中包含“酒店”详细信息,而是在该字段上应用订单。
假设酒店详细信息存在于field1中,那么您可以将所需的酒店保持在最佳位置,即使您可以按照以下方式将多个所需的酒店保持在最佳状态 -
按字段排序(field1,'Taj')描述 - 它将使Taj保持在最顶层
按字段排序(field1,'Trident','Taj') - 它将使Taj保持在顶部,然后从顶部开始第二个位置的Trident。