注册 登录
编程论坛 ASP技术论坛

[求助]这条SQL语句有什么错误?

redice 发布于 2007-10-25 18:54, 863 次点击

数据库Goods表设计如下

Goods表中我添加了一个记录,如下

但是,当我执行下面的SQL语句时,却返回0条记录.郁闷?
Select * from goods where Goods_Name like '%' and Goods_Type = 1 and Goods_Factory like '%' and Goods_Author like '%' and Goods_Edition like '%'

[此贴子已经被作者于2007-10-25 18:55:16编辑过]

15 回复
#2
redice2007-10-25 18:56
应该返回1才对呀
#3
yms1232007-10-25 19:06
Select * from goods where Goods_Name like '%' and Goods_Type = 1 and Goods_Factory like '%' and Goods_Author like '%' and Goods_Edition like '%'
这样写好想找不到关键词。
#4
redice2007-10-25 19:56
回复:(yms123)Select * from goods where Goods_Na...

那应该怎样改呢?

#5
yms1232007-10-25 19:58
Select * from goods where Goods_Type = 1
直接查询Goods_Type呢?
#6
永夜的极光2007-10-25 20:07
你是在access里面执行的吗?
#7
redice2007-10-25 20:08
回复:(yms123)Select * from goods where Goods_Ty...

这样应该可以

但是我需要实现的就是那个长语句呀
更奇怪的是 这条语句开始我成功执行得到正确的结果 后来就不行了 郁闷

#8
redice2007-10-25 20:09
回复:(永夜的极光)你是在access里面执行的吗?
在Access和ASP中我都实验过了
#9
永夜的极光2007-10-25 20:13
我这里没有IIS,asp的没法试,不过在Access里面运行要把%换成*

换成这样试试
Select * from goods where Goods_Name like '*' and Goods_Type = 1 and Goods_Factory like '*' and Goods_Author like '*' and Goods_Edition like '*'

我发现用like '*'这种,可以过滤该字段为空的记录

[此贴子已经被作者于2007-10-25 20:14:22编辑过]

#10
redice2007-10-25 20:23
回复:(永夜的极光)我这里没有IIS,asp的没法试,不...
晕 还是不行
#11
永夜的极光2007-10-25 20:27
我自己弄了一个数据库,试试可以的啊

要不你把条件一个个加上去试,看哪个条件出了问题
#12
redice2007-10-25 20:59

晕 我找到问题了 原来是因为那个Goods_Author字段为空的原因 难道"%"不能匹配""

谢谢你了 真是麻烦了

#13
redice2007-10-25 21:00
对 我想起了
%可以匹配一个或多个字符 但不能匹配0个字符 哈哈
#14
yms1232007-10-25 21:49
Select * from goods where Goods_Name<>"" and Goods_Type = 1 and Goods_Factory<>"" and Goods_Author<>"" and Goods_Edition<>""
如果楼主想判断不为空直接判断不就可以了吗?
#15
redice2007-10-26 08:55
回复:(yms123)Select * from goods where Goods_Na...
我主要是实现综合查询 如果用户没有填写某项 则视该字段为任意字符
我并不是为了判断某一字段是否为空

我将每个字段都加了一个默认值 现在好了
#16
hangxj2007-10-26 10:11
自己搞定了,不错该赞一个~~~

好久没来的,借你的贴来问候大家一下,呵呵~

1