怎么在mysql里做字符串连接
创新互联是专业的祥符网站建设公司,祥符接单;提供网站建设、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行祥符网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
name: 字段类型名 class: java类名 indexed: 缺省true。 说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。 stored: 缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。 sortMissingLast: 指没有该指定字段数据的document排在有该指定字段数据的document的后面 sortMissingFirst: 指没有该指定字段数据的document排在有该指定字段数据的document的前面 omitNorms: 字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。 termVectors: 如果字段被用来做more like this 和highlight的特性时应设置为true。 compressed: 字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。 multiValued: 字段多于一个值的时候,可设置为true。 positionIncrementGap: 和multiValued 一起使用,设置多个值之间的虚拟空白的数量
字符串型字段:straaa
表名: tbl_str
执行语句:
1、不用任何连接符将该字段连接
SELECT group_concat(straaa separator '') FROM `tbl_str` WHERE 1
2、使用连接符将该字段连接(默认为逗号)
SELECT group_concat(straaa) FROM `tbl_str` WHERE 1
或
SELECT group_concat(straaa separator '连接符') FROM `tbl_str` WHERE 1
在MySql中提供了两个字符串的操作函数:Concat,Concat_ws.对于他们的介绍比较多,然而我们更多的需要使用到按列分组连接才能满足我们的需求,这里可以使用Group_concat来实现。
GROUP_CONCAT(expr)
完整句法如下: GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
[SEPARATOR str_val])
这个函数在 MySQL 4.1 中被加入。函数返回一个字符串结果,该结果由分组中的值连接组合而成: mysql SELECT student_name,
- GROUP_CONCAT(test_score)
- FROM student
- GROUP BY student_name;ormysql SELECT student_name,
- GROUP_CONCAT(DISTINCT test_score
- ORDER BY test_score DESC SEPARATOR )
- FROM student
- GROUP BY student_name;
在 MySQL 中,你可以得到表达式结合体的连结值。通过使用 DISTINCT 可以排除重复值。如果希望对结果中的值进行排序,
可以使用 ORDER BY 子句。为了以倒序排序,可以在 ORDER BY 子句中用于排序的列名后添加一个 DESC (递减 descending) 关键词
。缺省为升序;这也可以通过使用 ASC 关键词明确指定。
SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (,)。
你可以通过指定 SEPARATOR 完全地移除这个分隔符。
在你的配置中,通过变量 group_concat_max_len 要以设置一个最大的长度。
在运行时执行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;
如果最大长度被设置,结果值被剪切到这个最大长度。
GROUP_CONCAT() 函数是一个增强的 Sybase SQL Anywhere 支持的基本 LIST() 函数。
如果只有一个列,并且没有其它选项被指定,GROUP_CONCAT() 是向后兼容有极大限制的 LIST() 函数。
LIST() 有一个缺省的排序次序。
如果分组的字符过长,可以对系统参数进行设置
1、本地数据库连接
Driver={MySQL};Server=localhost;Option=16834;Database=myDataBase;
2、远程数据连接
Driver={MySQL};Server=myServerAddress;Option=131072;Stmt=;Database=myDataBase; User=myUsername;Password=myPassword;
mysql如何实现多行查询结果合并成一行,mysql如何实现多行查询结果合并成一行网站简介信息
利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行。
其完整语法:
GROUP_CONCAT(expr)
该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
mysql SELECT student_name,
- GROUP_CONCAT(test_score)
- FROM student
- GROUP BY student_name;
Or:
mysql SELECT student_name,
- GROUP_CONCAT(DISTINCT test_score
- ORDER BY test_score DESC SEPARATOR ' ')
- FROM student
- GROUP BY student_name;
在MySQL中,你可以获取表达式组合的连接值。你可以使用DISTINCT删去重复值。假若你希望多结果值进行排序,则应该使用 ORDER BY子句。若要按相反顺序排列,将 DESC (递减) 关键词添加到你要用ORDER BY 子句进行排序的列名称中。默认顺序为升序;可使用ASC将其明确指定。 SEPARATOR 后面跟随应该被插入结果的值中间的字符串值。默认为逗号 (‘,')。通过指定SEPARATOR '' ,你可以删除所有分隔符。
使用group_concat_max_len系统变量,你可以设置允许的最大长度。 程序中进行这项操作的语法如下,其中 val 是一个无符号整数:
SET [SESSION | GLOBAL] group_concat_max_len = val;