MYSQL SELECT只有表中所有行的一列

时间:2013-11-07 17:26:43

标签: mysql sql

我需要在表格中按一列选择所有行的所有值。我有

ID       TAGS
1        girls, womens, cars
2        girls, world, flowers
3        weapons, cars, boys

所以在SQL之后我应该得到一个数组:

array('girls', 'womens', 'cars', 'girls', 'world', 'flowers', 'weapons', 'cars', 'boys')

那么我的sql应该是什么样的?

3 个答案:

答案 0 :(得分:4)

永远不要永远不要在一列中存储多个值。

就像你现在看到的那样,这只会让你感到头痛。规范化你的表格。

USER_ID  TAG
1        girls
1        women
1        cars
2        girls
...

之后,您可以选择所需的结果

select group_concat(distinct tag)
from your_table

答案 1 :(得分:0)

使用GROUP_CONCAT()。类似的答案已经在MySQL DISTINCT on a GROUP_CONCAT()

答案 2 :(得分:0)

我至少可以提供一个示例解决方案:

  1. 使用Cursor或其他东西遍历每一行数据
  2. 拆分数据(在互联网上找到几个拆分示例)sample example, Split string in SQL
  3. 将值放入临时表
  4. 最后选择与表格不同
  5. 有人可以提出这些例子并制定解决方案。