select * from ecs_goods_type g where g.cat_name='打印机';
这样搜索结果为空..
首先表里是包含一条数据据有打印机这个字段的。。。
但是g.cat_name='shop'就可以搜到。。。
请问这个sql该如何写, 请不要只是说编码问题。。。 mysql数据库..
------解决方案--------------------
set name='gbk' 先试一下,字符集的原因。 论坛中搜索一下mySQL 字符集,会有很多结果。
------解决方案--------------------
如果真的是字符集编码的问题,那么你通过SQL存进去的‘打印机’,被乱码后存储起来,假设为‘@#¥%&*’, 那么你用你的SQL问查询的时候,你在SQL文里输入‘打印机’,系统同样会把它乱码成‘‘@#¥%&*’来数据库中存储的字段比较,所以,尽管是乱码,还是可以查询这条记录的。 所以不太可能是字符编码问题。
你看看你的数据库中cat_name字段的列类型,是什么?如果是VARCHAR(4)的话,就是你的列类型错误,如果不是这个类型,就是其他原因了。 CAHR()与varchar()区别是:CHAR()会自动截断,如果你定义了CHAR(10),你输入了‘abc’三个字母,那么你多定义的那7个字符位置会被截掉。 但若你定义的是ARCHAR(10)的话,你输入了‘abc’,数据库仍然会用10个位置来存储这个‘abc’,只不过现在成了‘abc ’,即,后面有7个空格。 所以,你看看你的表中是‘打印机’还是‘打印机 ’? 用select * from ecs_goods_type g where g.cat_name like '打印机%';查询试试。