标签: group-concat

MySQL:在group_concat 中使用concat 时如何排序?

我需要排序dateconcat范围内group_concat,而我的查询运行良好:

 SELECT 
    report.`Name`,
    GROUP_CONCAT(
      CONCAT(
        "[",
      DATE(report.Date) --(not working) order by DATE(report.Date)  ,
        ',',
      report.ProductPrice --(not working) order by DATE(report.ProductPrice) ,
        "]"
      ) 
    ) AS ProductPrice  
  FROM report
 GROUP BY report.Name ;
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

mysql sql group-concat

3
推荐指数
1
解决办法
5877
查看次数

sql:为什么在使用'GROUP CONCAT'+'GROUP BY'时查询重复值?

查询:

SELECT MemberId, a.MemberName, GROUP_CONCAT(FruitName) FROM a LEFT JOIN b ON 
a.MemberName = b.MemberName GROUP BY a.MemberName
Run Code Online (Sandbox Code Playgroud)

表a

MemberID          MemberName              
--------------    ----------  
1                  Al                   
1                  Al       
3                  A2       
Run Code Online (Sandbox Code Playgroud)

表b

MemberName             FruitName
---------------        --------------
Al                     Apple
Al                     Mango
A2                     Cherry
Run Code Online (Sandbox Code Playgroud)

上述查询产生的结果:

MemberId    MemberName  GROUP_CONCAT(FruitName)
3           A2          Cherry
1           A1          Apple,Apple,Mango,Mango
Run Code Online (Sandbox Code Playgroud)

我使用的实际表格各有10列,所以只将一切存储在一个表中不是一种解决方法.这就是说,我怎么能更改查询只返回'Apple,Mango'MemberNamé?

sql group-by left-join group-concat

2
推荐指数
2
解决办法
2034
查看次数

GROUP_CONCAT和DISTINCT很棒,但我如何摆脱这些仍然存在的重复?

我有一个像这样设置的mysql表:

id   uid   keywords
--   ---   ---
1    20    corporate
2    20    corporate,business,strategy
3    20    corporate,bowser
4    20    flowers
5    20    battleship,corporate,dungeon

我希望我的输出看起来像是:

20    corporate,business,strategy,bowser,flowers,battleship,dungeon

但我最接近的是:

SELECT DISTINCT uid, GROUP_CONCAT(DISTINCT keywords ORDER BY keywords DESC) AS keywords
 FROM mytable
 WHERE uid !=0
 GROUP BY uid

哪个输出:

20    corporate,corporate,business,strategy,corporate,bowser,flowers,battleship,corporate,dungeon

有没有人有办法解决吗?非常感谢提前!

mysql database duplicates group-concat

2
推荐指数
1
解决办法
3449
查看次数

PHP中的explode()问题

我的PHP中的爆炸功能有问题.

我从数据库中提取字符串如下:

  column_name
  0,2000,0,3000,1000,7000,1000,0,0,0
Run Code Online (Sandbox Code Playgroud)

将它拉入一个名为$ recordset的对象后,我正在使用explode函数从中创建一个数组......如下所示:

  $array = explode(",",$recordset->column_name)
Run Code Online (Sandbox Code Playgroud)

但是有些怎么样,阵列并不像我期望的那样......

这是我回应数组时得到的结果:

     Array
     (
     [0] => 0
     [1] => 0
     [2] => 0
     [3] => 3000
     [4] => 7000
     [5] => 2000
     [6] => 1000
     [7] => 1000
     [8] => 0
     [9] => 0
     )
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我没有得到我想要的值...但是,如果我的数据库中的字符串很短,请说:

    1000,0,1200,0
Run Code Online (Sandbox Code Playgroud)

以上逻辑工作正常..

我不知道如何调试或解决这个问题..

请帮忙?

php mysql sql-order-by group-concat

2
推荐指数
1
解决办法
242
查看次数

MySQL Group_Concat由Id区分

是否可以group_concat通过不同的ID记录:

GROUP_CONCAT(Column2 BY DISTINCT Column1)

我需要从column2不同的值中获取值column1.因为第2列中有重复值,所以我不能使用distinct column2.

有什么想法吗?谢谢!

编辑1

样本表记录:

ID  Value
1   A
1   A
2   B
3   B
4   C
4   C
Run Code Online (Sandbox Code Playgroud)

使用GROUP_CONCAT我想要的[ GROUP_CONCAT(Value BY DISTINCT Id)],我将有一个输出:

A, B, B, C

编辑2

不知何故让我的group_concat工作:

GROUP_CONCAT(DISTINCT CONCAT(Id, '|', Value))

这将通过不同的id显示连接值,只需要在某处摆脱Id.没有这个concat功能你可以做到,但我需要分隔符.这可能不是一个好的答案,但无论如何我都会发布.

mysql sql distinct group-concat

2
推荐指数
1
解决办法
5553
查看次数

mysql多个group_concat命令保存

假设我有一张表格mytable:

select * from mytable:

+------+------+------+ | a | b | c | +------+------+------+ | 1 | 1 | a | | 1 | 2 | b | +------+------+------+ 我想用功能将bc列分组group_concat:

select a, group_concat(b), group_concat(c) from mytable group by a

+------+-----------------+-----------------+ | a | group_concat(b) | group_concat(c) | +------+-----------------+-----------------+ | 1 | 1,2 | a,b | +------+-----------------+-----------------+ 我的问题是,执行mysql的保证,那group_concat将永远以同样的顺序,我不会得到这样的结果,1,2在第二列和B,A在第三列?

mysql sql group-by group-concat

2
推荐指数
1
解决办法
819
查看次数

SQL left join和group_concat返回重复数据

我试图从3个不同的表中返回2个左连接的数据.所有表都返回多行.这是我的发言:

"SELECT s.*, GROUP_CONCAT(sp.photo) AS photos, GROUP_CONCAT(st.name) AS tags
FROM sites s
LEFT JOIN sites_photos sp
ON sp.sites_id = s.id
LEFT JOIN sites_tags st
ON st.sites_id = s.id
WHERE s.id = 30"
Run Code Online (Sandbox Code Playgroud)

此语句返回的数据如下所示:

Array
(
[id] => 30
[url] => www.test.be
[name] => test
[date] => 2014-08-16
[photos] => 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132191_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg, 201408141132194_gummies.jpg
[tags] => test, hello, ale, print, social, more, hcp, test, hello, ale, print, social, more, hcp
) …
Run Code Online (Sandbox Code Playgroud)

mysql sql left-join group-concat

2
推荐指数
1
解决办法
847
查看次数

如何在codeigniter活动记录中设置group_concat_max_len?

我试图设置group_concat_max_lencodeigniter $this->db->query('SET GLOBAL group_concat_max_len=15000')但它不起作用.

我尝试过:

$q = 'SET GLOBAL group_concat_max_len=15000';
$this->db->query($q);

$this->db->select("group_concat(id) ids");
$this->db->from("table_name");
$data = $this->db->get()->row_array();
Run Code Online (Sandbox Code Playgroud)

但这并不能提供所有数据.对此有任何想法.谢谢!!!

php codeigniter group-concat

2
推荐指数
1
解决办法
3278
查看次数

MySQL group_concat SEPERATOR char或ascii

在MySQL中有没有办法在group_concat()中使用不可打印的符号定义SEPERATOR?像ascii 3或类似的东西?

我试过了

group_concat(text SEPERATOR char(3))
Run Code Online (Sandbox Code Playgroud)

group_concat(text SEPERATOR 3)
Run Code Online (Sandbox Code Playgroud)

他们俩都行不通.

也许是逃避的方法?

我得到很长的文本,我想确保没有可打印的标志会破坏我的内容.所以我想用不可打印的标志分开它们......

有任何想法吗?

mysql non-printable group-concat

2
推荐指数
1
解决办法
1069
查看次数

选择具有相同列的所有行以分隔mysql中的列

我有这样一张桌子:

fkey | sensor | depth | value 
-----+--------+-------+-------
1    | 1      | 1     | 34
1    | 1      | 2     | 27
1    | 2      | 1     | 22
1    | 2      | 2     | 34
1    | 2      | 3     | 56
2    | 1      | 1     | 12
2    | 1      | 2     | 24
2    | 2      | 1     | 56
3    | 1      | 1     | 43
3    | 1      | 2     | 89
3 …
Run Code Online (Sandbox Code Playgroud)

mysql select pivot-table group-concat mariadb

2
推荐指数
1
解决办法
66
查看次数