【问题标题】:how to store the multiple values in a mysql user defined variable如何将多个值存储在mysql用户定义的变量中
【发布时间】:2012-12-02 15:46:24
【问题描述】:

如何将多个值存储在 mysql 用户定义的变量中

一般来说,

select @a:=color from tabex;

其中tabex如下

mysql> select * from tabex;

+----+----------+-------+-----------+
| id | personid | color | color_set |
+----+----------+-------+-----------+
|  1 |        1 | red   | red,white |
|  2 |        1 | white | red,white |
|  3 |        2 | blue  | NULL      |
|  4 |        2 | red   | NULL      |
+----+----------+-------+-----------+

然后如果我执行查询之后

mysql> select @a;

+------+
| @a   |
+------+
| red  |
+------+

我得到了上面的结果,但实际上我想要下面的结果

+-------+
|  @a   |
+-------+
| red   |
| white |
| blue  |
| red   |
+-------+

请任何人告诉我,这在 mysql 中是否可行。

只是我的问题是如何将多个值存储在 mysql 用户定义的变量中

【问题讨论】:

  • 这是可能的。用户定义的变量存储一个值。所以要存储多个值,您必须创建一个连接字符串。 GROUP_CONCAT(color) 可以解决问题。

标签: mysql variables


【解决方案1】:

你可以使用下面这句话来获取所有结果为一个字符串

select GROUP_CONCAT(color) from tabex;

点击here或更多信息

【讨论】:

  • 如果您正在查看大型查询结果,这里有一个非常重要的限制值得明确提及:“结果被截断为 group_concat_max_len 系统变量给出的最大长度,其默认值为1024。该值可以设置得更高,尽管返回值的有效最大长度受max_allowed_pa​​cket值的限制。"
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多