我有一个MySQL数据库,其中包含一个名为products的表,例如,结构为:
产品从每个供应商的文件导入数据库,例如,供应商1可能已导入记录1 - 1500,然后供应商2可能导入记录1500 - 4500,供应商3 4500 - 5250等。< / p>
每个供应商可能有多种类型的同一产品。让我们用餐盘的例子。因此,每个供应商可能会有许多不同品牌和风格的餐盘。
当用户搜索餐盘时,使用MATCH ... AGAINST查询我从每个供应商那里得到了很多结果,但是,搜索的结果将与供应商在数据库中的顺序相同所以,在我看到供应商2的任何餐盘之前,我可能会看到供应商1的一百个餐盘。
如果搜索结果不具体,是否有更好的方法来显示搜索结果,以便将结果混合一点?
答案 0 :(得分:1)
您需要将ORDER BY
与任意列一起使用。按添加日期或其他字段对它们进行排序,以显示随机结果。
对此的一个相当糟糕的解决方案是使用ORDER BY RAND()
,但请注意,每次重新加载页面时,这会给出不同的随机顺序。
另一个解决方案可能是FULLTEXT
搜索(和索引)多个列;这会产生更多变化的结果集。