关于mysql中设置编码的重要性

今天跟同事遇到一个问题,这个问题简单点来说就是:一条sql语句在程序中执行没有结果,但是用数据库客户端执行却有结果,sql语句大概是这样 select id,name from user where age=13 and name=‘张三‘ , (真正的sql当然不能贴出来啦)。顺便说一下我们持久层用的是mybatis,检查了sql的拼写,也检查了参数是不是有空格,数据库中是不是有空格,结果发现都没有问题。数据是从正式库导到本地库的,我们发现正式库上运行是没有问题的,我们怀疑是本地数据库的问题,经过检查我们发现本地库没有设置编码格式,我们把本地库的字符编码设置成和正式库一样,重新测试发现问题解决了。

时间: 2024-10-10 03:51:50

关于mysql中设置编码的重要性的相关文章

Mysql中设置默认时间为系统当前时间

Mysql中设置默认时间为系统当前时间 数据库设计时会遇到的一种情况:将系统当前时间设成默认值存储 数据库设计编码: CREATE TABLE `test` ( `name` varchar(50) NOT NULL, `createtime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 如果使用SQLyog 来设置时间字段的默

[原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Eclipse中设置编码的方式

Eclipse中设置编码的方式 如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,Eclipse工 作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP.Windows 2000简体中文)的缺省编码是GB18030,在此工作空间中建立的工程编码是GB18030,工程中建立的java文件也是GB18030.如果要使 新建立工程.java文件直接使UTF-8则需要做以下工作: 1.

mysql中latin1编码中文转utf8

在mysql中,对应的表字段编码通常默认为lartin1编码,在本地客户端显示的时候看着是乱码,但是通过mysql -u -p -h命令登录后,select查询到数据是正常的,通过jdbc或者php等去取回来的中文是乱码: 也就是中文在mysql中是lartin1,到我们自己本地或者用navicat等select却是乱码,使用mysql内置函数来转换一下 SELECT convert(unhex(hex(convert(name using latin1))) using utf8) as na

如何修改wampserver中mysql中字符编码的解决方案

因为我用的一般都是utf8,所以有必要改一下: 打开mysql控制台,输入密码登录之后,执行命令: show variables like '%char%'; 注意引号的中英文格式以及最后面的分号不要丢: 执行完之后会显示出Variable的名字和对应的value值: 之后打开mysql中的配置文件my.ini,找到 [client] 在其下面添加一句:default-character-set=utf8 找到[mysql] 在其下面添加和上面一样的内容: 找到[mysqld],一般是在最下面那

转:Eclipse中设置编码的方式

来源:http://blog.csdn.net/jianw2007/article/details/3930915 如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,Eclipse工 作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP.Windows 2000简体中文)的缺省编码是GB18030,在此工作空间中建立的工程编码是GB18030,工程中建立的java文件也是GB1

Mysql中设置默认时间为当前值

1.直接在创建表时添加该列并声明默认值,如下: CREATE TABLE `table1` ( `id` int(11) NOT NULL, `createtime` timestamp NULL default CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 如果是在navicat下操作的话,设置字段的类型为timestamp,默认值写上CURRENT_TIMESTAMP,如下图: 2.在现有表中添加新列 ALTER TABLE

Mysql中设置远程访问的方法

这个是windows服务器中啊.我用的是可视化界面 sqlyog ,你们也可以用  navicat  甚至dos界面都可以 用root帐号登录后,在查询页面中写以下代码 GRANT ALL PRIVILEGES ON *.* TO mx @"%" IDENTIFIED BY "123456"; /* 数据库名.表名 如果写成*.*代表授权所有的数据库 */ FLUSH PRIVILEGES; /* 刷新刚才的内容*/ UPDATE db SET HOST = '%'

关于mysql中数据库编码的问题

今天在学习mysql的时候发现了我的编码是 : latin1 的情况,应该是不支持中文,虽然还没有尝试过,先给他修改了吧. 先查询一下默认的情况: mysql> show variables like '%collation%';   从网上找的查询命令,虽然还不知道这个 collation是干嘛用的+--------------------------+----------------------------+| Variable_name          |           Value