+ -
当前位置:首页 → 问答吧 → 疑惑?????求高人解答,小弟在此先谢过了

疑惑?????求高人解答,小弟在此先谢过了

时间:2011-12-05

来源:互联网

我的sql语句当查询年级(都是4字节)很班级时可以出现结果,年级是varchar 大小是4,班级是int,可是当查询专业或者学院的时候就没有结果,是不是因为sql语句的查询语句和数据库中字段的长度有关啊。下面几个都是我的sql语句
能出结果的:
select * from user,chengji where user.grade='2009' and user.userid=chengji.userid
select * from user,chengji where user.class=3 and user.userid=chengji.userid
不能出结果的:
select * from user,chengji where professional='网络工程' and user.userid=chengji.userid
select * from user,chengji where user.grade='2009' and user.userid=chengji.userid and user.college='信息科学与工程学院'

希望各位大侠帮帮小弟

作者: dy0558775258712345   发布时间: 2011-12-05

没有连接查询。inner join 

作者: ynm_8023   发布时间: 2011-12-05

引用 1 楼 ynm_8023 的回复:

没有连接查询。inner join

什么意思啊,是不是两个表的连接啊,user.userid=chengji.userid可以吧两个表连接起来

作者: dy0558775258712345   发布时间: 2011-12-05

看看链接查询吧
user.userid=chengji.userid
不行的

作者: liangyue1990   发布时间: 2011-12-05

引用 1 楼 ynm_8023 的回复:

没有连接查询。inner join

用逗号也可以吧from两个表

作者: dy0558775258712345   发布时间: 2011-12-05

引用 3 楼 liangyue1990 的回复:

看看链接查询吧
user.userid=chengji.userid
不行的

为什么呢,那为什么我在mysql里面测试能够成功呢

作者: dy0558775258712345   发布时间: 2011-12-05

楼主不厚道,小号太明显了吧

作者: Antineutrino   发布时间: 2011-12-05

跟连接没有关系
感觉是中文的问题,楼主插入一些专业和学院为英文的记录,然后查询一下看看能不能查出来

作者: Antineutrino   发布时间: 2011-12-05

估计是中文的问题,看看中文前后是不是因为插入时多了一些空白字符什么的。
select * from user,chengji where professional like '%网络工程%' and user.userid=chengji.userid
试试,如果可以的话,就要重新处理一下数据了

作者: sankun   发布时间: 2011-12-05

sql可以这样写没问题,我想问一下你,”不能出结果“ 是sql出错,还是没数据,你看看有没有符合条件的数据呀

作者: Iamagril   发布时间: 2011-12-05

感觉也是中文的问题 有中文的都查不到 !针对中文的栏位多多考虑下吧

作者: zcp1985   发布时间: 2011-12-05

我觉得是你的专业和学院字段的问题,是varchar还是nvarchar 如果是nvarchar的话,nvarchar(30),如果录入的值是15个字符,那么后面15个数据库会自动填充15个空格,所以查询的时候“=”是不可行的,用like,或者将字段类型改为varchar

作者: baolong_chang   发布时间: 2011-12-05

引用 9 楼 iamagril 的回复:

sql可以这样写没问题,我想问一下你,”不能出结果“ 是sql出错,还是没数据,你看看有没有符合条件的数据呀

不好意思,是没有数据 ,sql没事

作者: dy0558775258712345   发布时间: 2011-12-05

引用 7 楼 antineutrino 的回复:

跟连接没有关系
感觉是中文的问题,楼主插入一些专业和学院为英文的记录,然后查询一下看看能不能查出来

刚才试了一下,果然是这样的啊,太感感谢谢了

作者: dy0558775258712345   发布时间: 2011-12-05

把表结构贴出来啦,没有信息是条件组合时候,没有符合条件咯。

作者: jake512   发布时间: 2011-12-05

我在网上查了一下,大部分说是sql语句中出现中文在jdbc中的传递过程中无法解决中文传送问题,不知道是不是这个问题,可是怎吗解决啊 照他得说法我的没有修改成功!相求高人解答
这是那个人的问题分析http://topic.csdn.net/t/20031118/19/2469460.html

作者: dy0558775258712345   发布时间: 2011-12-05

引用 14 楼 jake512 的回复:

把表结构贴出来啦,没有信息是条件组合时候,没有符合条件咯。

下面是表的结构
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `userid` varchar(8) NOT NULL DEFAULT '',
  `username` varchar(40) NOT NULL DEFAULT '',
  `sex` varchar(2) NOT NULL,
  `birthday` date NOT NULL,
  `college` varchar(40) NOT NULL,
  `professional` varchar(40) NOT NULL,
  `grade` varchar(4) NOT NULL,
  `class` int(11) NOT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

作者: dy0558775258712345   发布时间: 2011-12-05

热门下载

更多