我有一个名为ad_categories
的表,其结构如下
我有另一个名为pub_categories
的表,它的结构是这样的
id都不同我需要选择id's of ad_categories
任何一个ad_categories.cid should be in pub_categories.cid OR any of ad_categories.scid should be in ad_categories.scid OR any of the ad_categories.tcid should be in pub_categories.tcid
我有cid列表高达35,scid高达250和tcid高达600.如何实现这一点任何人请帮助我..
cid是主要类别scid是子类别,tcid是thrid子类别。 ad_category是广告客户选择类别的地方,pub_catogries是发布商选择类别。我的类别最多可达30个子集,最多可达250个,第三类最多可达600个。 广告客户和发布商都可以选择多个类别 我试过爆炸pub_categories cid,scid和tcid by',`并使用like条件搜索这样的值
(ad_cat.cid LIKE '%,1,%' OR ad_cat.cid LIKE '%,1') OR (ad_cat.cid LIKE '%,2,%' OR ad_cat.cid LIKE '%,2') OR (ad_cat.scid LIKE '%,1,%' OR ad_cat.scid LIKE '%,1') OR (ad_cat.scid LIKE '%,2,%' OR ad_cat.scid LIKE '%,2') OR (ad_cat.scid LIKE '%,3,%' OR ad_cat.scid LIKE '%,3') OR (ad_cat.scid LIKE '%,4,%' OR ad_cat.scid LIKE '%,4') OR (ad_cat.scid LIKE '%,5,%' OR ad_cat.scid LIKE '%,5') OR (ad_cat.tcid LIKE '%,1,%' OR ad_cat.tcid LIKE '%,1') OR (ad_cat.tcid LIKE '%,2,%' OR ad_cat.tcid LIKE '%,2') OR (ad_cat.tcid LIKE '%,3,%' OR ad_cat.tcid LIKE '%,3') OR (ad_cat.tcid LIKE '%,4,%' OR ad_cat.tcid LIKE '%,4') OR (ad_cat.tcid LIKE '%,5,%' OR ad_cat.tcid LIKE '%,5')
答案 0 :(得分:0)
对于使用逗号分隔列分隔的逗号匹配,您只能选择在查询中使用RegExp。规则就像:
ad_categories.cid REGEXP '(^|,)(11|2|4)(,|$)'
或
ad_categories.cid REGEXP '(^|,)(REPLACE(pub_categories.cid, ',', '|'))(,|$)'
希望这会有所帮助。