草庐IT

Cache_Group

全部标签

mysql - MariaDB GROUP_CONCAT 只返回一个值

在我的实例中,我遇到了GROUP_CONCAT函数的一个奇怪问题,使用它来将整数组合在一起工作得很好,但将它应用于varchar根本不起作用。数据如下:CUSTOMERIDLOCATIONNAMEPRODUCTIDUNITSIDPRODUCTNAME1Location651001Product651Location661002Product661Location671003Product671Location681004Product681Location681005Product68当我运行时:SELECTGROUP_CONCAT(DISTINCTlm.ProductID)asBra

Mysql group post_id 按最大计数状态

你好,我有一个mysql查询,它会根据状态的最大计数返回post_id,它当前显示的结果是POST_ID3Mysql表:(`post_id`,`user_id`,`status`,`date_created`)(2,2,'funny',20121022120627)(2,3,'lame',20121023120627)(3,1,'useful',20121023120627)(3,3,'lame',20121023120627)(3,4,'useful',20121023120627)(4,4,'useful',20121024120627)但我需要的结果是,按desc顺序显示从最大到

mysql - 有条件地对不同的列进行 GROUP BY

我想显示聊天消息列表。为此,我有一个SELECT语句:SELECTid,`from`,sent,message,recdFROMchatWHEREidIN(SELECTMAX(id)FROMchatWHERE`to`=?GROUPBY`from`)ORDERBYidDESC问题是,我想有条件地选择to=maria和from=maria的消息。也就是说,如果to=maria我想按from分组,如果from=maria,我想按到。如何动态更改此GROUPBY? 最佳答案 我会得到一个UNION。(SELECTid,'from'asdir

mysql - GROUP_CONCAT 和长文本

我需要将MySQL数据库表中的两个文本字段合并为一个,因此我使用了以下SQL脚本来完成。表:tbl_newsitemsCombine:需要将'ni_text'中的文本与相同的'news_id'组合起来表格布局:用于合并文本的代码:选择news_id,GROUP_CONCAT(ni_text分隔器'')从tbl_newsitemsGROUPBYnews_id;但它不会在结果部分显示完整(完整)文本。CONCAT字段被修剪并缺少一些文本。CONCAT字段的默认数据类型是TEXT(1024)结果:那么如何在不删除内容的情况下将整个文本合并到一个字段中。请给我执行此操作的脚本。谢谢

mysql - 适用于 where group-by plus 和 order-by 的索引

我有使用order-bygroup-by的查询selectcount(*),filed2fromtable1wherefield1>xgroupbyfiled2orderbycount(*)desc此查询的最佳索引是什么。我应该单独或一起索引filed1,field2? 最佳答案 您应该以两种不同的顺序为两列创建索引ALTERTABLEtable1ADDINDEXfield1_field2_ndx(field1,field2);ALTERTABLEtable1ADDINDEXfield2_field1_ndx(field2,fiel

php - Yii 奇怪的行为 : CGridView + group + with

我有一个奇怪的行为,我将尝试解释。我正在构建一个报告系统,每个用户都可以让其他用户报告他们的个人资料、图片或消息。在后端我想显示一个CGridView每个用户出现在一行中,并报告了总次数。为此,我将group添加到条件中,效果很好。但如果我想按任何相关字段过滤View,我必须将with添加到条件中,它适用于过滤或搜索,但结果的总显示不正确显示Displaying1-2of15result(s)当它应该显示Displaying1-2of2result(s)在报告表中我有15行但只有两个用户,还添加了一个不存在的分页。模型/Report.phppublicfunctionrelations

mysql - 为什么我的 MySQL group by 这么慢?

我正在尝试查询接近2000万行的分区表(按月)。我需要按DATE(transaction_utc)和country_id分组。如果我关闭groupby和聚合返回的行刚刚超过40k,这不是太多,但是添加groupby会使查询速度大大降低,除非说GROUPBY在transaction_utc列上,在这种情况下变得很快。我一直在尝试通过调整查询和/或索引来优化下面的第一个查询,并达到了下面的点(大约是最初速度的2倍)但是仍然坚持使用5秒的查询来汇总45k行,这似乎太多了。作为引用,这个盒子是一个全新的24逻辑核心、64GBRAM、Mariadb-5.5.x服务器,其可用的INNODB缓冲池比

mysql - GROUP_CONCAT 改变 GROUP BY 顺序

我有一个View(很多连接)输出按日期ASC排序的数据。按预期工作。输出类似于:IDdatetag1other_data125-03-2011bluefff如果我应用GROUPBYID。对于其他列,MySQL输出每个ID的第一个找到的行。我在te文档的某个地方读到了这个。SELECT*FROM`myVIEW`GROUPBY`ID`IDdatetag1other_data125-03-2011bluefff现在让我们添加一个GROUP_CONCAT(tags1)SELECT*,CONCAT_GROUP(`tag1`)AS`tags`FROM`myVIEW`GROUPBY`ID`由于我应用

sql - 指定要从 GROUP BY 子句返回的记录

编辑澄清我可能误解了GROUPBY的用法,所以我只是重新表述我的问题,而不对如何解决问题做出假设:我有一个term_id列表和一个包含对象的表(其中有一个object_idPK和term_id作为FK等字段),我需要为提供的每个term_id提取具有最高object_id的对象。正确的做法是什么?原始问题我确定我遗漏了一些明显的东西,但我不知道如何指定哪个记录将由带有GROUPBY的查询返回。默认情况下GROUPBY返回组中的第一条记录,我可以在不使用子查询的情况下获取最后一条记录吗?基本查询返回第一条记录:SELECT*FROMwp_term_relationshipsWHEREte

MySQL GROUP_CONCAT 多个字段

我可能正在无脑思考。我想使用GROUP_CONCAT从我的数据库中的两个字段返回一系列数字。到目前为止,我已经使用以下方法完成了此操作:SELECTt_id,CONCAT(GROUP_CONCAT(DISTINCTs_id),',',IFNULL(GROUP_CONCAT(DISTINCTi_id),''))ASall_idsFROMmytableGROUPBYt_id这工作正常,但如果i_id为NULL,那么我当然会得到一个不必要的逗号。有没有更好的方法来做到这一点,这样如果i_id为NULL,我就不会以逗号结尾? 最佳答案 您需