Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL仅从表中的所有行中选择一列_Mysql_Sql - Fatal编程技术网

MYSQL仅从表中的所有行中选择一列

MYSQL仅从表中的所有行中选择一列,mysql,sql,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应该是什么样

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

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应该是什么样子呢?

决不,决不,决不在一列中存储多个值。 就像你现在看到的,这只会让你头疼。使你的桌子正常化

USER_ID  TAG
1        girls
1        women
1        cars
2        girls
...
然后你可以像这样选择你想要的结果

select group_concat(distinct tag)
from your_table
决不,决不,决不在一列中存储多个值。 就像你现在看到的,这只会让你头疼。使你的桌子正常化

USER_ID  TAG
1        girls
1        women
1        cars
2        girls
...
然后你可以像这样选择你想要的结果

select group_concat(distinct tag)
from your_table

使用。这里已经有了类似的答案。

请使用。这里已经有了类似的答案。

我至少可以给出一个示例解决方案:

  • 使用光标或其他东西遍历每一行数据
  • 拆分数据(internet上有几个拆分示例)
  • 将该值放入临时表中
  • 最后,从表中选择distinct

  • 有人可以举这些例子并提出解决方案。

    我至少可以给出一个示例解决方案:

  • 使用光标或其他东西遍历每一行数据
  • 拆分数据(internet上有几个拆分示例)
  • 将该值放入临时表中
  • 最后,从表中选择distinct

  • 有人可以举出这些例子并提出解决方案。

    如果您有一个多值字段,这是不可能的。您需要对查询结果进行一些后处理。OP没有禁止使用后处理!从所有行获取所有标记的查询应该是什么样子?然后我想我可以从arrayAre中提取类似的值总是有三个标记吗?不,可以有100个关键字。对我来说,只要得到所有的值就足够了,如果你有一个多值字段,这是不可能的。您需要对查询结果进行一些后处理。OP没有禁止使用后处理!从所有行获取所有标记的查询应该是什么样子?然后我想我可以从arrayAre中提取类似的值总是有三个标记吗?不,可以有100个关键字。如果你使用wordpress或类似的工具,那么恐怕这是不可避免的。这不是一个选项,因为所有操作都在我的新闻表中,其中有列:id、名称、url、标记。因此,我无法为标记创建其他表。如果您使用wordpress或类似工具,那么恐怕这是不可避免的。这不是一个选项,因为所有操作都在我的新闻表中,其中有列:id、名称、url、标记。所以我无法为标签制作其他表格