MYSQL 有数据却查询不到.什么原因啊
没有专门学过SQL只是临时需要用一下数据库才有了接触.请知道帮忙解释一下:select*fromabcdwherec='11xx33sd'这样查不到任何结果.数据库的表里...
没有专门学过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 上传到服务器的. 展开
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 上传到服务器的. 展开
5个回答
展开全部
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.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;
展开全部
不知道你是用什么语言来查询或是来显示这些数据,通过网页,你可以select * from ABCD然后来查一下查询出来的数据的类型和长度,这样你就会知道你错再哪里,一般语言都会有输出类型与长度的。比如787146他会告诉你是字符串还数字,然后也会告诉你长度是多少,这样你就知道是不是多了空格啊等!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from abcd where c like '11xx33sd%'
说明这个字符串在数据库中是有多余字节的,一般为空格
c定义为varchar 如果是纯数字,你用
select * from abcd where c = 787146
这种方式是可以查到的,但是不规范,准确的查法还是
select * from abcd where c = ‘787146’
说明这个字符串在数据库中是有多余字节的,一般为空格
c定义为varchar 如果是纯数字,你用
select * from abcd where c = 787146
这种方式是可以查到的,但是不规范,准确的查法还是
select * from abcd where c = ‘787146’
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把数据库给我吧,感觉语句没错啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |