(本文档仅供参考)
问题
使用原生sql数据集查询数据时,当参数或者where后面条件是中文时无法查询出数据,若是英文/数字可以查询出数据,在数据库工具直接执行sql,无论wheremysql数据源下,有如下场景:
1、使用原生sql数据集查询数据时,当参数或者where后面条件是中文时无法查询出数据,若是英文/数字可以查询出数据;
2、使用即席查询、透视分析的条件参数/参数面板,选择或输入中文值也无法查询出数据,若是英文/数字可以查询出数据;
在数据库工具直接执行sql,无论where=中文或者英文都可以查询出数据。
问题原因
此问题是因为数据源中所使用的链接字符串有误导致的。
场景1
我们产品使用的url链接本身是没有带amp;的(amp;代表的是html里面&的转义符号),去掉此字符后,查询正常,以下是错误以及正确的url链接:
...
jdbc:mysql://ip:端口/数据库名称?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
场景2
选择驱动程序类之后,URL链接默认生成一些参数,将后面生成的参数都删除了,从而导致查询不正常。一般不需要去删除掉这些参数,删除后可能会引起一系列问题。
...