日期:2014-05-20  浏览次数:20651 次

疑惑?????求高人解答,小弟在此先谢过了
我的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='信息科学与工程学院'

希望各位大侠帮帮小弟


------解决方案--------------------
没有连接查询。inner join 

------解决方案--------------------
看看链接查询吧
user.userid=chengji.userid
不行的
------解决方案--------------------
跟连接没有关系
感觉是中文的问题,楼主插入一些专业和学院为英文的记录,然后查询一下看看能不能查出来
------解决方案--------------------
估计是中文的问题,看看中文前后是不是因为插入时多了一些空白字符什么的。
select * from user,chengji where professional like '%网络工程%' and user.userid=chengji.userid
试试,如果可以的话,就要重新处理一下数据了

------解决方案--------------------
感觉也是中文的问题 有中文的都查不到 !针对中文的栏位多多考虑下吧
------解决方案--------------------
我觉得是你的专业和学院字段的问题,是varchar还是nvarchar 如果是nvarchar的话,nvarchar(30),如果录入的值是15个字符,那么后面15个数据库会自动填充15个空格,所以查询的时候“=”是不可行的,用like,或者将字段类型改为varchar
------解决方案--------------------
把表结构贴出来啦,没有信息是条件组合时候,没有符合条件咯。
------解决方案--------------------
将中文汉字转换成Unicode,再比较试试
------解决方案--------------------
还是感觉用like会比较好吧,你能确定用户输入的查询条件那么准确吗?用=号肯定不可以