我的搜索结果排序有问题。
我有两张桌子
表格照片(第一张表格),其中包含有关照片的信息,每张照片都有ID。
当有人点击结果(照片)脚本时,将有关它的信息保存到第二个表格。 表(第二个表)看起来像这样
______________________
|ID of photo| keyword|
按照第二张表中的照片ID计数对结果进行排序
所以order by (something) + (something) + (count id´s of photo for phrase by user (keyword))
例如:
表中有:
|id|keyword|
|5 |car |
|5 |car |
|6 |car |
|6 |car |
|2 |car |
|5 |car |
搜索查询:
SELECT * FROMbx_photos_main
WHERE (Title
LIKE '%keyword%') OR (Desc
LIKE '%keyword%') OR (Categories
LIKE '%keyword%')order by (order) DESC LIMIT 0, 10;
当有人尝试找到“汽车”时,照片5将是第一张,第6张和第三张将是带有身份证2的照片...有人可以帮帮我吗?
结构
bx_photos_main
ID - int(10) - UNSIGNED - AUTO_INCREMENT
_bx_hledej(秒表)
id - int(11)
keyword - varchar(20)
答案 0 :(得分:0)
要按每个关键字的照片数量计算(和排序),您可以使用如下查询:
SELECT
photos.id,
photos.Title,
photos.Desc,
photos.Categories
FROM bx_photos_main photos
LEFT OUTER JOIN _bx_hledej keywords
ON keywords.id = photos.id
WHERE (Title LIKE '%keyword%') OR (Desc LIKE '%keyword%') OR (Categories LIKE '%keyword%')
GROUP BY keywords.keyword
ORDER BY COUNT(*) DESC