当前位置: 首页 > news >正文

网站备案ip山东教育行业网站建设推荐

网站备案ip,山东教育行业网站建设推荐,网站联盟名词解释,购物导购网站开发转载自 MySQL group_concat()函数 MySQL GROUP_CONCAT函数介绍 MySQL GROUP_CONCAT()函数将组中的字符串连接成为具有各种选项的单个字符串。 下面说明了GROUP_CONCAT()函数的语法#xff1a; GROUP_CONCAT(DISTINCT expressionORDER BY expressionSEPARATOR sep);以下是…转载自  MySQL group_concat()函数 MySQL GROUP_CONCAT函数介绍 MySQL GROUP_CONCAT()函数将组中的字符串连接成为具有各种选项的单个字符串。 下面说明了GROUP_CONCAT()函数的语法 GROUP_CONCAT(DISTINCT expressionORDER BY expressionSEPARATOR sep);以下是演示GROUP_CONCAT()函数如何工作的一个示例。 USE testdb; CREATE TABLE t (v CHAR );INSERT INTO t(v) VALUES(A),(B),(C),(B);SELECT GROUP_CONCAT(DISTINCT vORDER BY v ASCSEPARATOR ;) FROMt; -- SELECT v FROM t GROUP BY v;执行上面查询语句得到以下结果 - --------------------------------------------------------------------- | GROUP_CONCAT(DISTINCT vORDER BY v ASCSEPARATOR ;) | --------------------------------------------------------------------- | A;B;C | --------------------------------------------------------------------- 1 row in set注上面语句类似于把SELECT v FROM t GROUP BY v;语句的结果串接起来。 参考以下图解 DISTINCT子句用于在连接分组之前消除组中的重复值。 ORDER BY子句允许您在连接之前按升序或降序排序值。 默认情况下它按升序排序值。 如果要按降序对值进行排序则需要明确指定DESC选项。 SEPARATOR指定在组中的值之间插入的文字值。如果不指定分隔符则GROUP_CONCAT函数使用逗号()作为默认分隔符。 GROUP_CONCAT函数忽略NULL值如果找不到匹配的行或者所有参数都为NULL值则返回NULL。 GROUP_CONCAT函数返回二进制或非二进制字符串这取决于参数。 默认情况下返回字符串的最大长度为1024。如果您需要更多的长度可以通过在SESSION或GLOBAL级别设置group_concat_max_len系统变量来扩展最大长度。 MySQL GROUP_CONCAT示例 让我们来看看示例数据库(yiibaidb)中的customers表其表结构如下所示 - mysql desc customers; ------------------------------------------------------------------ | Field | Type | Null | Key | Default | Extra | ------------------------------------------------------------------ | customerNumber | int(11) | NO | PRI | NULL | | | customerName | varchar(50) | NO | | NULL | | | contactLastName | varchar(50) | NO | | NULL | | | contactFirstName | varchar(50) | NO | | NULL | | | phone | varchar(50) | NO | | NULL | | | addressLine1 | varchar(50) | NO | | NULL | | | addressLine2 | varchar(50) | YES | | NULL | | | city | varchar(50) | NO | | NULL | | | state | varchar(50) | YES | | NULL | | | postalCode | varchar(15) | YES | | NULL | | | country | varchar(50) | NO | | NULL | | | salesRepEmployeeNumber | int(11) | YES | MUL | NULL | | | creditLimit | decimal(10,2) | YES | | NULL | | ------------------------------------------------------------------ 13 rows in set要获取客户所在的国家/地区以逗号分隔的字符串您可以使用GROUP_CONCAT函数如下所示 SELECT GROUP_CONCAT(country) FROMcustomers;SQL 执行上面查询语句得到以下结果 - 然而一些客户位于同一个国家。要删除重复的国家/地区名称请将DISTINCT子句添加到函数如下查询 mysql SELECT GROUP_CONCAT(DISTINCT country) FROMcustomers; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | GROUP_CONCAT(DISTINCT country) | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | France,USA,Australia,Norway,Poland,Germany,Spain,Sweden,Denmark,Singapore,Portugal,Japan,Finland,UK,Ireland,Canada,Hong Kong,Italy,Switzerland,Netherlands,Belgium,New Zealand,South Africa,Austria,Philippines,Russia,Israel | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 row in set如果国家的名称按升序排列则可读性更高。要在连接之前排序国家的名称请使用ORDER BY子句如下 SELECT GROUP_CONCAT(DISTINCT countryORDER BY country) FROMcustomers;执行上面查询语句得到以下结果 - mysql SELECT GROUP_CONCAT(DISTINCT countryORDER BY country) FROMcustomers; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | GROUP_CONCAT(DISTINCT countryORDER BY country) | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | Australia,Austria,Belgium,Canada,Denmark,Finland,France,Germany,Hong Kong,Ireland,Israel,Italy,Japan,Netherlands,New Zealand,Norway,Philippines,Poland,Portugal,Russia,Singapore,South Africa,Spain,Sweden,Switzerland,UK,USA | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 row in set要将返回的字符串的默认分隔符从逗号()更改为分号(;)请使用SEPARATOR子句作为以下查询 SELECT GROUP_CONCAT(DISTINCT countryORDER BY countrySEPARATOR ;) FROMcustomers;执行上面查询语句得到以下结果  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | GROUP_CONCAT(DISTINCT countryORDER BY countrySEPARATOR ;) | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | Australia;Austria;Belgium;Canada;Denmark;Finland;France;Germany;Hong Kong;Ireland;Israel;Italy;Japan;Netherlands;New Zealand;Norway;Philippines;Poland;Portugal;Russia;Singapore;South Africa;Spain;Sweden;Switzerland;UK;USA | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 row in set经过上面几个简单示例现在您应该知道GROUP_CONCAT函数是如何工作现在把它应用在一个实际的例子中。 每个客户都有一个或多个销售代表。 换句话说每个销售人员都负责一个或多个客户。 要了解谁负责哪些客户使用inner join子句如下 SELECT employeeNumber, firstname, lastname, customername FROMemployeesINNER JOINcustomers ON customers.salesRepEmployeeNumber employees.employeeNumber ORDER BY firstname , lastname;执行上面查询语句得到以下结果 - -------------------------------------------------------------------------- | employeeNumber | firstname | lastname | customername | -------------------------------------------------------------------------- | 1611 | Andy | Fixter | Souveniers And Things Co. | | 1611 | Andy | Fixter | Australian Collectables, Ltd | | 1611 | Andy | Fixter | Australian Gift Network, Co | | 1611 | Andy | Fixter | Australian Collectors, Co. | | 1611 | Andy | Fixter | Annas Decorations, Ltd | | 1504 | Barry | Jones | Baane Mini Imports | | 1504 | Barry | Jones | Toms Spezialitten, Ltd | ************* 此处省略了一大波数据 ********************************************* | 1216 | Steve | Patterson | Auto-Moto Classics Inc. | | 1216 | Steve | Patterson | Gifts4AllAges.com | | 1216 | Steve | Patterson | FunGiftIdeas.com | | 1216 | Steve | Patterson | Diecast Classics Inc. | | 1216 | Steve | Patterson | Online Diecast Creations Co. | -------------------------------------------------------------------------- 122 rows in set现在我们可以按员工编号对结果集进行分组并使用GROUP_CONCAT函数连接正在负责员工的所有员工如下所示 SELECT employeeNumber,firstName,lastName,GROUP_CONCAT(DISTINCT customernameORDER BY customerName) FROMemployeesINNER JOINcustomers ON customers.salesRepEmployeeNumber employeeNumber GROUP BY employeeNumber ORDER BY firstName , lastname;上面查询语句执行结果如下 - 如下所示的结果更容易阅读。 具有CONCAT_WS函数的MySQL GROUP_CONCAT函数的示例 有时GROUP_CONCAT函数可以与CONCAT_WS函数相结合使查询结果更有用。 例如制作客户分号分隔值列表 首先使用CONCAT_WS函数连接每个客户联系人的姓氏和名字结果是联系人的全名。然后使用GROUP_CONCAT函数来创建列表。 以下查询使客户的分号分隔值列表。 SELECT GROUP_CONCAT(CONCAT_WS(, , contactLastName, contactFirstName)SEPARATOR ;) FROMcustomers;请注意GROUP_CONCAT函数将字符串值连接在不同的行中而CONCAT_WS或CONCAT函数将不同列中的两个或多个字符串值连接起来。 MySQL GROUP_CONCAT函数常见错误 GROUP_CONCAT函数返回单个字符串而不是值列表。 这意味着您不能在IN操作符中使用GROUP_CONCAT函数的结果例如在子查询中使用。 例如GROUP_CONCAT函数返回值的结果1, 2和3连接成为字符串1,2,3 。 如果将此结果提供给IN运算符则查询不能正常工作。因此查询可能不返回任何结果。例如以下查询将无法正常工作。 因为IN运算符接受诸如(1,2,3)的值的列表而不是由值列表(1,2,3)组成的字符串。 因此以下查询将无法正常工作。 SELECT id, name FROMtable_name WHEREid IN GROUP_CONCAT(id);因为GROUP_CONCAT函数是一个聚合函数要对值进行排序必须在函数内使用ORDER BY子句而不是SELECT语句中的ORDER BY。 以下示例演示了在使用GROUP_CONCAT函数的上下文中ORDER BY子句的不正确使用 SELECT GROUP_CONCAT(DISTINCT countrySEPARATOR ;) FROMcustomers ORDER BY country;SELECT子句返回一个字符串值因此ORDER BY子句在此语句中不起作用。 MySQL GROUP_CONCAT应用程序 在许多情况下您可以应用GROUP_CONCAT函数来产生有用的结果。 以下列表是使用GROUP_CONCAT函数的一些常见示例。 用逗号分隔的用户角色如“管理员作者编辑人员”。生成逗号分隔的用户的爱好如“设计编程阅读”。为博客帖子文章或产品创建标签例如“mysqlmysql聚合函数mysql教程”。 在本教程中我们介绍了MySQL GROUP_CONCAT函数将非空值从一组字符串连接到具有各种选项的字符串中。 参考 MySQL GROUP_CONCAT函数 :http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat
http://www.huolong8.cn/news/225332/

相关文章:

  • 网站建设的用例图博物馆网站 建设方案
  • 深圳单位网站建设服务公司dede视频网站源码
  • 长沙网站建设q.479185700強眉山招聘网站建设
  • 网站免费的正能量漫画微信公众号里面免费做网站
  • php怎么做网站后台网站开发的技术有
  • 许昌企业网站建设公司马来西亚做公路投标网站
  • 比较好约的网站设计网站免费模板资源
  • 淄博网站排名外包wordpress本地上传图片
  • 怎么在百度制作自己的网站邯郸怎么读
  • 2019年开公司做网站可以吗网络营销软文范例500字
  • js获取网站html江苏省住房和建设厅网站首页
  • 网站建设深圳官网医院网络系统
  • 怎么改网站模块江西建设部网站
  • 电商站外推广平台有哪些研学网站开发需求文档
  • 自建设网站有没有便宜的网站建设
  • 做个网站费用苏醒主题做的网站
  • wordpress下载资源站主题seo代运营
  • wordpress 电商网站口碑好的邯郸网站建设
  • 网站系统 外贸信息流广告代运营
  • 求推荐个网站赣州人才网官网入口
  • 做企业网站要注意什么福州市台江区网站
  • 南充网站建设hulingwl漯河网站建设
  • c网站建设缔造自助建站
  • wordpress建站手机端网站请及时续费
  • 泰州网站建设做网站优化的公司的宣传海报
  • 微企点自助建站系统网站的域名怎么起
  • 腾讯云怎么备案网站wordpress缩略图中大大
  • wordpress付费浏览优化seo
  • 网站开发的图片上海企业排行榜
  • 网站开发结束语网站正在备案中模板