某段SQL中需要去解析一个字段中的json字符串,然而,里边的汉字也是编码后的,存的格式类似
u6e38u620f
SQL语句理论上如下
get_json_object(extends,'$.cate')='u6e38u620f'
但是呢,实际系统执行中涉及到层层编译过程,反斜杠到底该写几个才能select出正确的结果呢?
实验结论如下:
在
spark-hive>
情况下,输入两个反斜杠即可
某段SQL中需要去解析一个字段中的json字符串,然而,里边的汉字也是编码后的,存的格式类似
u6e38u620f
SQL语句理论上如下
get_json_object(extends,'$.cate')='u6e38u620f'
但是呢,实际系统执行中涉及到层层编译过程,反斜杠到底该写几个才能select出正确的结果呢?
实验结论如下:
在
spark-hive>
情况下,输入两个反斜杠即可
在一个新的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
在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 =
这样一行内容,如果没有,则手动添加,
从数据库里取N个字段,然后组合到一起用“,”分割显示,起初想到用CONCAT()来处理,好是麻烦,没想到在手册里居然有提到CONCAT_WS(),非常好用。
CONCAT_WS(separator, str1, str2,...)
它是一个特殊形式的 CONCAT(),第一个参数剩余参数间的分隔符,分隔符可以是与剩余参数一样的字符串,如果分隔符是 NULL,返回值也将为 NULL,这个函数会跳过分隔符参数后的任何 NULL 和空字符串,分隔符将被加到被连接的字符串之间。
简单例子如下: