MySQL学习笔记(一)——搜索中文字符串
注:本笔记为记录实验室学习项目中遇到的各类问题,如有错误,欢迎各位大神指正,谢谢!
C#工程中,遇到了需要搜索数据库中内容为中文的字段。在程序中如果直接使用:
select * from FormName where itemName = '中文';
就无法搜索到指定内容,“中文”也会变成“??”。
搜索了许多资料,大部分网友的说法都是字符编码问题。
mysql默认的字符编码为latin1,其无法识别中文。
因此在读取查询语句的时候会出现乱码,从而使查询条件不正确。
因此需要将其进行修改,一般更改为utf8即可。
本次实验中,针对该问题,做了以下几点处理:
修改my.ini文件
在my.ini文件中搜索:[client]
添加:default-character-set=utf8在my.ini文件中搜索:[mysql]
添加:default-character-set=utf8注:修改完my.ini文件之后需要重启MySql服务。具体方法:
计算机->管理->服务和应用程序->服务->MySQL->右键->重新启动
工程代码中添加charset=utf8
在建立连接时,添加charset=utf8,即:
MySqlConnection myConnection = new MySqlConnection(
"Host = localhost;
Database=mydb;
Username=admin;
Password=123456;
charset=utf8;");
搜索的语法可以如下所示:
SELECT * FROM FormName WHERE item = '中文'
SELECT * FROM FormName WHERE item like '中文%'
SELECT * FROM FormName WHERE item like '%中文'