別の行データに従って行を取得するにはどうすればよいですか。例: その他に従って広告を取得したい。
どのように比較が行われるかは知っていますし、現在アクティブな広告のスコアを取得する方法も知っていますが、広告を取得する方法はわかりません。
私の現在のクエリは次のとおりです。ただし、最も類似した 10 個の広告ではなく、同じ行の 10 倍が返されます。
SELECT
a.AdvertisementID as A_AdvertisementID,
IF(a.Topic LIKE a2.Topic, 50, 0) + IF(a.Description LIKE a2.Description, 40, 0) + IF(a.Cate_CategoryID LIKE a2.Cate_CategoryID, 10, 0) as A_Score,
a.AdvertisementID as A_AdvertisementID,
a.Topic as A_Topic,
LEFT(a.Description, 300) as A_Description,
a.Price as A_Price,
a.Type as A_Type
FROM
".DB_PREFIX."A_Advertisements a2,
".DB_PREFIX."A_Advertisements a
WHERE
a2.AdvertisementID <> a.AdvertisementID
AND
a.AdvertisementID = :a_id
ORDER BY
A_Score DESC