在数据集中sql执行没结果,而到放mysql数据库中查询有结果
一般原因有几点:
- 编码不对,比如查询中有中文,数据库能正确识别,而在设计器中设置编码是没有设置。
- 设计器中使用参数或在数据集中使用${}包含公式时,拼接的字符串不对,这种原因主要是对公式使用不当,可以先在模板中对这个公式进行计算,看看结果字符串,确认没有错误后再在数据集中拼接即可。
1.查看及修改 MySQL 字符集
1)查看 MySQL 数据字符集
MySQL 字符集介绍:MySQL 的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:服务器( Server), 数据库(Database), 数据表(Table), 连接(Connection)。
查看默认字符集 (默认情况下,MySQL 的字符集是 latin1(ISO_8859_1)
通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令实现:
SHOW VARIABLES LIKE 'character%';//查看字符集
2)修改 MySQL 字符集
方法一:
修改 MySQL 的 my.ini 文件中的字符集键值。
default-character-set = utf8 character_set_server = utf8
修改完后,重启 MySQL 的服务,service mysql restart, 使用
mysql> SHOW VARIABLES LIKE 'character%';
查看,发现数据库编码均已改成 UTF-8。
方法二:
使用 SQL 命令
SET character_set_client = utf8 ; SET character_set_connection = utf8 ;
注:character_set_connection,database,results,server 这四个字符一致,就可以不出现乱码。以上修改字符集的方法是 Windows 系统下的,如果是 Linux 系统,使用 Linux 下面的方法即可,思路一样。
修改完成之后,通过
show variables like 'character_set_%'
查看字符编码,修改完之后如果还是出现乱码问题。则需要在设计器定义数据连接数修改。
2. 数据连接修改
在定义数据连接增加 URL 的地方增加参数
?useUnicode=true&characterEncoding=UTF-8
注意需要将图示中的编码设置为自动。一般情况数据连接这里新增了编码参数乱码问题就可以解决了