账号通
    

账号  

密码  

1343

查看

0

回复
主题:[建议]数据库的小问题 [收藏主题]  
inlet511 当前离线

122

主题

0

广播

0

粉丝
添加关注
级别:一年级

用户积分:1093 分
登录次数:86 次
注册时间:2006/11/2
最后登录:2010/11/29
inlet511 发表于:2007/12/15 11:10:00   | 显示全部帖子 查看该作者主题 楼主 
科汛在线网校系统

上次问了个嵌套查询数据类型不对的问题,最后我找到了原因:

KS_Article表中的SpecialID字段数据类型为"文本".

但是KS_Special中的SpecialID为"自动编号".

所以如果用到了KS_Article.SpecialID 等于KS_Special.SpecialID就会出现数据类型不正确的问题.

也许你认为,只要加个引号不就可以了么?像这样:

KS_Article.SpecialID='某个专题的SpecialID'

但是如果用嵌套查询,结果返回很多个SpecialID就行不通了,就会出现数据类型错误.例如:

select * from KS_Article where SpecialID in (select SpecialID where FolderID='20071809384091')
(提取属于某个栏目的专题下的所有文章)

就会出现数据类型错误

因为子查询返回的是一个由很多数值类型的数字组成的数组,像这样:

返回:(7,8,9,15,18)

我们不能把数组的每个元素都加上引号.

做不到:('7','8','9','15','18')

所以如果大家需要做类似于这样的功能的话,就可以把KS_Article中的"SpecialID"字段类型改成"数值型"(给新手:在access中打开数据库,右键单击KS_Article,选择"设计视图",找到"SpecialID"字段,在"数据类型"栏里重新选择即可.)


[此贴子已经被作者于2007-12-15 11:12:22编辑过]

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.04688秒 powered by KesionCMS 9.0