SELECT bp.*,r.rating,COUNT(r.review_for),bp.business_name,bp.profile_member
FROM ibf_business_reviews r
LEFT JOIN ibf_business_profiles bp ON ( r.review_for=bp.profile_member )
WHERE bp.sub_category LIKE '%{$id},%'{$location_sql}
GROUP BY r.review_for HAVING COUNT(r.review_for) >=1
ORDER BY r.date_posted DESC LIMIT 0,2");
此查询用于显示特定位置的特定子类别 ID '%{$id} 中的business_name 的结果。我的问题是,额外的结果显示在共享第二个或第三个数字的类别中,即 ...viewcat&id=54 将显示在 ..viewcat&id=154 等中
我使用 LIKE 可能是我的问题? WHERE bp.sub_category LIKE '%{$id},%'
最佳答案
当您应该在子表中每行存储一个数字时,您正在将逗号分隔的列表存储在 varchar 中。那么你根本就不必使用LIKE
。
关于sql - 在 SQL 语句中使用 LIKE 时没有完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2979144/