SQL中不同情况下反斜杠到底要写几个

某段SQL中需要去解析一个字段中的json字符串,然而,里边的汉字也是编码后的,存的格式类似

u6e38u620f

SQL语句理论上如下

get_json_object(extends,'$.cate')='u6e38u620f'

但是呢,实际系统执行中涉及到层层编译过程,反斜杠到底该写几个才能select出正确的结果呢?

实验结论如下:

spark-hive>

情况下,输入两个反斜杠即可

标签: SQL, SQL数据

mysql保留关键字导致的语法错误

在一个新的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连接数据库localhost比127.0.0.1慢的问题

在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数据导入导出提示secure-file-priv option问题

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 =

这样一行内容,如果没有,则手动添加,

sql中的多行合并函数collect_set、collect_list 、concat_ws

从数据库里取N个字段,然后组合到一起用“,”分割显示,起初想到用CONCAT()来处理,好是麻烦,没想到在手册里居然有提到CONCAT_WS(),非常好用。

CONCAT_WS(separator, str1, str2,...)

它是一个特殊形式的 CONCAT(),第一个参数剩余参数间的分隔符,分隔符可以是与剩余参数一样的字符串,如果分隔符是 NULL,返回值也将为 NULL,这个函数会跳过分隔符参数后的任何 NULL 和空字符串,分隔符将被加到被连接的字符串之间。

简单例子如下:

订阅 SQL数据