MYSQL 有数据却查询不到.什么原因啊

没有专门学过SQL 只是临时需要用一下数据库 才有了接触.请知道帮忙解释一下:

select * from abcd where c = '11xx33sd'
这样查不到任何结果.数据库的表里明明是有这个数据的
select * from abcd where c like '11xx33sd%'
这样却是可以,

如果c列全为数据还可以不用引号查.
select * from abcd where c = 787146
如果加了引号就不行了 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
select * from abcd where c = '787146'

数据是我用LOAD DATA LOCAL INFILE 上传到服务器的.

mysql数据乱码问题可能有以下三种原因:
1.server本身设定问题,例如还停留在latin1版本;
2.table的语系设定问题(包含character与collation);
3.客户端程式(例如php,java)的连线语系设定问题;
建议使用utf8!!!!

想要避免mysql的中文乱码问题,可以尝试以下方法:
1,对于版本问题,建议去官网更新最新的版本或者比较好用的版本;

2,创建数据库,创建表时没有对字符编码进行设定会造成乱码问题:

创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';

建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3,对于第三种情况,参考一下方法:
编辑linux服务器中/etc/my.cnf文件,在[mysql]段加入default_character_set=utf8;
如果只是调试遇到乱码问题:
在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参数;
并且在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf-8或者gbk。
utf8或者gbk;
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
不知道你是用什么语言来查询或是来显示这些数据,通过网页,你可以select * from ABCD然后来查一下查询出来的数据的类型和长度,这样你就会知道你错再哪里,一般语言都会有输出类型与长度的。比如787146他会告诉你是字符串还数字,然后也会告诉你长度是多少,这样你就知道是不是多了空格啊等!本回答被提问者采纳
第2个回答  2014-06-03
select * from abcd where c like '11xx33sd%'
说明这个字符串在数据库中是有多余字节的,一般为空格
c定义为varchar 如果是纯数字,你用
select * from abcd where c = 787146
这种方式是可以查到的,但是不规范,准确的查法还是
select * from abcd where c = ‘787146’
第3个回答  2014-06-02
你把数据库给我吧,感觉语句没错啊
第4个回答  2014-06-02
看看数据后面是不是带了空格。
相似回答