【发布时间】:2012-02-04 21:37:44
【问题描述】:
可能重复:
Split string in SQL
Searching a column with comma seperated values
在我的 PHP 项目中,我遇到了编写 SQL 的问题:
我有一个表“consultants”,其中包含 categories 字段,其值如下:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ id | consultant_name | categories +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 | AOAOAO | health,insurance,programming, +
+ 2 | BOBOBO | health,gaming,windows,mobile, +
+ 3 | CCCCCC | insurance,windows, +
+ 4 | DDDDDD | mobile, +
+ . | ...... | ............ +
+ . | ...... | ............ +
+ . | ...... | ............ +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我有一个数组,其中包含顾问可以注册的所有类别。
$arrayOfCategories = $array("health","insurance","programming",
"sports","gaming","windows","apple",
"mobile","astrology");
我想要的是一个 SQL 查询,它应该给我一个输出,比如:
+++++++++++++++++++++++++++++++
+ category | occurrence +
+++++++++++++++++++++++++++++++
+ health | 2 +
+ insurance | 2 +
+ programming | 1 +
+ sports | 0 +
+ gaming | 1 +
+ windows | 2 +
+ apple | 0 +
+ mobile | 2 +
+ astrology | 0 +
+++++++++++++++++++++++++++++++
我们将不胜感激任何形式的帮助...
提前致谢...
【问题讨论】:
-
这就是所谓的糟糕的数据库设计。
-
@ShaktiSingh:是的,我同意你的看法。但是如果最后一次询问更改该怎么办。
-
你正在寻找与
GROUP_CONCAT()相反的东西。 -
使用stackoverflow.com/questions/8742093/… 将您的数据库架构转换为正常的东西
-
您确实应该考虑规范化您的顾问表。有了这种桌子,你总会有麻烦的!
标签: php mysql sql zend-framework select