Mysql中左连接表时如何获取广告数?
如果我使用计数 (*) 和分组依据,我会得到如下结果
count
2
2
2
我的目标是通过 Find_in_set 获取广告数量
结果:
count
2
结果数:2,但该类别中有 1 个分类。如何获取某个类别的广告数量?
最佳答案
FIND_IN_SET() 不返回列表中元素的数量,如果找到,它只返回特定值的位置。
可用于计算列表长度的一个表达式是:
LENGTH(ads.categories)-LENGTH(REPLACE(ads.categories, ',', ''))+1
字符串和去掉逗号的字符串的长度之差,再加上,就是元素个数。
但是当您真的想单独处理元素时,您会发现将数据存储为逗号分隔列表将是 cause more problems .
如果您通过创建第三个表来存储每对 ads.id
和 ads_category.id 来表示广告和类别之间的这种多对多关系,将会容易得多
。
关于MySQL find_in_set 查找该类别的广告号数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49719163/