在一个新的mysql环境执行原来的程序,提示语法错误,经查看发现环境的mysql版本是mysql8,groups一词在mysql8.0.2起成了保留关键字,暂时用`groups`写法代替,后续还是应该注意避免,这种坑也是防不胜防。
You have an error in your SQL syntax...
官方文档:https://dev.mysql.com/doc/refman/8.0/en/keywords.html
在一个新的mysql环境执行原来的程序,提示语法错误,经查看发现环境的mysql版本是mysql8,groups一词在mysql8.0.2起成了保留关键字,暂时用`groups`写法代替,后续还是应该注意避免,这种坑也是防不胜防。
You have an error in your SQL syntax...
官方文档:https://dev.mysql.com/doc/refman/8.0/en/keywords.html
MySQL中group_concat函数可以将分组的指定字段合并成一行内容,用来作列转行比较合适。
完整的语法如下:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
默认分隔符为英文逗号
示例:
select id,group_concat(distinct name) from table group by id;
需要注意的是合并后字段长度有默认限制
参考:
https://www.iteye.com/blog/hchmsguo-555543
http://www.mamicode.com/info-detail-1389878.html
https://www.cnblogs.com/franson-2016/p/6911631.html
https://www.cnblogs.com/llq1214/p/11202866.html
在php+mysql的开发过程中,连接数据库的主机名填写时,本机一般可以用localhost或者127.0.0.1,实际应用过程中,Linux系统目前还没发现过异常,但在Windows server系统中,有的时候写localhost,网页反应就会出现比较慢的情况,一般一页都需要1秒以上,一步步对程序运行时间判断,发现是mysql连接时候的问题,建立一个连接需要将近1秒,必然是有问题的,搜索之,发现确实存在这个情况,很多程序员博客都有反应,摘抄记录如下:
http://blog.sina.com.cn/s/blog_6cb5a76f0100yfho.html
最近发现程序反应时间有点慢,于是逐渐的排除,计算每段程序执行的时间,最后发现时间损耗都花在了链接数据库上,数据库链接也没有什么好的办法,于是便放下它了。
次日,我测试一下数据库的远程链接,发现我用IP访问数据库的执行时间很短要远远小于我在本地用localhost连接数据库。于是便有了下面一段测试:
Mysql数据库从文件导入或导出到文件,提示The MySQL server is running with the --secure-file-priv option so it cannot execute this statement ,原因及解决方法如下:
一些版本的mysql对通过文件导入导出作了限制,默认不允许,
查看配置,执行mysql命令
SHOW VARIABLES LIKE "secure_file_priv";
如果value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行),如果为空,则不限制目录;
修改配置可修改mysql配置文件,查看是否有
secure_file_priv =
这样一行内容,如果没有,则手动添加,