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可能是我的问题在SQL语句中使用LIKE时没有完全匹配
类别? WHERE bp.sub_category LIKE '%{$id},%'
喜@强尼 - 凯瑟尔〜你可以重新格式化SQL,并且可以验证问题的措辞就像你想要的?如果我了解你,你想知道如何停止匹配诸如154的东西,但只匹配54?然后使用=而不是'LIKE' ... – jcolebrand 2010-06-05 04:25:15
+!因为需要重新格式化SQL。你意识到“百分比”符号(%)是通配符。所以你基本上告诉它,你可以返回任何包含'id'的东西...所以如果你搜索“23”,你可以得到“123”,你可以得到“234”或“1234”......等。 – 2010-06-05 04:28:36
道歉的格式问题,我会给那个镜头摇滚 – user338813 2010-06-05 04:37:51