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