草庐IT

concat-ws

全部标签

mysql group_concat 在哪里

我遇到了以下查询的问题(如果这是一个重复的问题,那么我非常抱歉,但我似乎找不到任何可以帮助我的东西):SELECTd.*,GROUP_CONCAT(g.nameORDERBYg.nameSEPARATOR",")ASmembersFROMtable_dASdLEFTOUTERJOINtable_gASgON(d.eventid=g.id)WHEREmembersLIKE'%p%';MySQL显然无法处理WHERE子句中GROUP_CONCAT列的比较。所以我的问题很简单。是否有解决方法,例如使用子查询或类似的东西?我真的需要这段代码才能工作,除了在查询本身中处理它之外,没有任何替代方法

mysql - 使用 GROUP_CONCAT、GROUP BY、HAVING 选择

我有一个带有odd_id的表,我想为不同的ticket_id选择组合。这是我的查询:SELECTticket_id,GROUP_CONCAT(odd_id)asoddsconcatFROMticket_oddsGROUPBYticket_id它给了我关注:'28','14472510,14472813,14472546,14472855,14472746,14472610,14472647''29','14471149,14471138,14471125,14475603''30','14471823,14471781,14471655,14471865,14471597,144719

mysql - MySQL CONCAT IFNULL 如何处理两个以上的值?

我需要CONCAT两个字段(如果它们都存在)并在第二个字段周围添加括号。否则我只需要列出第一个字段。这是简单的版本:SELECTid,CONCAT(name,'(',nickname,')')asnameFROMuser;只要名字和昵称都存在,你应该得到如下结果:1|Adam(AlphaDog)2|Bob(Bobby)3|Charles(Charlie)但是如果没有昵称,它就会将整个内容作为null跳过。例如:id4,姓名Doug,昵称null给出结果:4|null我希望看到的是仅列出名称...像这样:4|Doug所以我开始研究CONCATIFNULL。但我很难把它做好。你能帮忙吗?以

mysql - group by 和 group concat ,不使用主 pk 优化 mysql 查询

我的例子是MYSQL版本是5.6.34-日志问题摘要以下查询耗时40秒,ORDER_ITEM表有758423条记录和PAYMENT表有177272条记录和submission_entry表有2165698条记录作为整个表计数。详情如下:我有这个查询,引用[1]我添加了SQL_NO_CACHE用于测试重新测试时的重复测试查询。我有优化的索引引用[2],但不显着改进。在此处查找表结构[3]查找使用过的解释计划[4][1]SELECTSQL_NO_CACHE`payment`.`id`ASid,`order_item`.`order_id`ASorder_id,GROUP_CONCAT(DI

mysql - SQL GROUP_CONCAT 拆分成不同的列

我搜索了很多,但没有找到适合我的问题的解决方案。我想做什么?我在MySQL中有2个表:-国家-货币(我通过CountryCurrency将它们连接在一起-->由于多对多的关系)有关工作示例,请参见:http://sqlfiddle.com/#!2/317d3/8/0我想使用联接将两个表链接在一起,但我只想为每个国家/地区显示一行(有些国家/地区有多种货币,所以这是第一个问题)。我找到了group_concat函数:SELECTcountry.Name,country.ISOCode_2,group_concat(currency.name)AScurrencyFROMcountryIN

MySQL - GROUP_CONCAT 返回重复数据,不能使用 DISTINCT

我有一个规范化的数据库,我正在尝试使用JOIN和GROUP_CONCAT从多个表中返回数据。问题:使用GROUP_CONCAT复制行。我不能使用DISTINCT,因为某些数据(成分制造商)确实需要复制。这是我当前的查询和数据库结构(SQLFiddle):SELECTrecipe.*,GROUP_CONCAT(recipe_detail.ingredient_id)ASiid,GROUP_CONCAT(ingredient.name)ASiname,GROUP_CONCAT(ingredient_mfr.abbr)ASmabbr,GROUP_CONCAT(recipe_tag.name)

MySQL 性能 : Single query using GROUP_CONCAT, 还是两个单独的查询?

我有一个MySQL数据库,每个用户都有一个账号,每个账号可以有多个权限。我的最终目标是以帐户的用户名和逗号分隔的权限ID列表结束。我可以通过两种方式完成此操作:SELECTa.username,GROUP_CONCAT(rp.permission_id)aspermission_idsFROMaccountASaJOINrole_permissionASrpONrp.role_id=a.role_idWHEREa.id=1902……或者……SELECTusernameFROMaccountWHEREid=1902;SELECTpermission_idFROMaccount_permi

mysql - 使用 concat 时得到一个额外的逗号 ','

我在sqlyog中写了一个存储过程。它很长并且执行了除concat语句之外的所有所需功能,因此我将只列出该特定查询。UPDATErecipes_newSETco_auths=CONCAT(co_auths,',',c1id)WHEREid=name_in;我基本上想要在两个字段中进行分离,并且此语句放置在游标中,因此它是迭代的。co_auths目前为null,所以我得到的结果是,1,2,3,而我希望它是1,2,3。猜猜最合适的解决方案是什么? 最佳答案 通过使用IF:UPDATErecipes_newSETco_auths=IF(c

mysql - group_concat 在 MySQL 中有多个连接

数据库架构createtable`questions`(`id`intnotnullauto_increment,`title`varchar(45)notnull,primarykey(`id`));createtable`tags`(`id`intnotnullauto_increment,`question_id`intnotnull,`name`varchar(45)notnull,primarykey(`id`));createtable`comments`(`id`intnotnullauto_increment,`question_id`intnotnull,`body`

MySQL:使用 JOIN 和 GROUP_CONCAT 进行更新

这可能吗?我有2个表,客户和订单。现在我想用该客户的所有订单ID(以逗号分隔)填写Customers中的一列。我试过类似的东西,但它不起作用:UPDATEcustomersAScLEFTJOINordersASoONo.customerid=c.customeridSETc.orders=GROUP_CONCAT(DISTINCTo.orderid)我收到“群组功能的无效使用”。附言。我知道最好始终在SELECT/JOIN中动态获取GROUP_CONCAT值,但我只是想知道我是否可以通过某种方式填充此列。 最佳答案 您需要在grou