SQL多条件 并且(AND) 或者(OR) 怎么写

munepn3vc 2011-12-10 03:45:03
SELECT * FROM [表名] WHERE [字段1]= 'A' And [字段2] = 'B' And ([字段3] = 888 OR [字段4] = 888 )

字段1和字段2是文本型,字段3和字段4是数字型

我想查询 , 字段1 = A 并且 字段2 = B 并且 (字段3 或者 字段4 = 888)

上面的SQL为什么不正确,正确的该怎么写?
...全文
35347 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
munepn3vc 2011-12-14
  • 打赏
  • 举报
回复
谢谢大家,这几天忙其他事没来得及结贴.

8楼的答案不错,但理解错了.

SELECT * FROM [表名] WHERE ([字段1]= 'A' And [字段2] = 'B' And [字段3] = 888 )OR([字段1]= 'A' And [字段2] = 'B' And [字段4] = 888 )

字段3和字段4只要1个满足就行了.
mizuho_2006 2011-12-11
  • 打赏
  • 举报
回复 1
字段1 = 'A' and 字段2 = 'B' and (字段3 = 888 or 字段4 = 888)

如果是字段3和字段4在数据库中定义是字符型,则要写成

字段1 = 'A' and 字段2 = 'B' and (字段3 = '888' or 字段4 = '888')
阿非 2011-12-11
  • 打赏
  • 举报
回复
看下实际的SQL 是怎样的
淘淘大师 2011-12-10
  • 打赏
  • 举报
回复
你要看看你数据库中3和4字段是否真的是数字型的,数字型的查询是不用加单引号的,当然你加了也没有问题的,所以很可能是表有问题吧
征服者X 2011-12-10
  • 打赏
  • 举报
回复
没问题,看看你的数据类型对不?
陈阿弟 2011-12-10
  • 打赏
  • 举报
回复
([字段3] = '888' OR [字段4] = '888' ) 都加上 单引号,试试
绿领巾童鞋 2011-12-10
  • 打赏
  • 举报
回复
逻辑应该没错,是可以这样用,自己调试试试
晴空万里2942 2011-12-10
  • 打赏
  • 举报
回复
SELECT * FROM [表名] WHERE ([字段1]= 'A' And [字段2] = 'B' And [字段3] = 888 )OR([字段1]= 'A' And [字段2] = 'B' And [字段3] = 888 And [字段4] = 888 )试试这个。

牧云 2011-12-10
  • 打赏
  • 举报
回复
如果是Acess数据库的话,字符串处理要小心
如果查询条件的字段为字符串型的,要在字段前面加上:cstr()
其中()里面是字段名,尤其是字段为日期是就出这种错
黄瓜黄瓜 2011-12-10
  • 打赏
  • 举报
回复 2
select * from tb where cell1="A" and cell2="B" and (cell3=3 or cell4=3)
看你的表达 字段1 = A 并且 字段2 = B 并且 (字段3 或者 字段4 = 888)
你就这样写出来就对了啊 列3 和列4 是一个组合条件嘛 ,


ycagri 2011-12-10
  • 打赏
  • 举报
回复
语句看不出问题

and 优先级 大于 or
  • 打赏
  • 举报
回复
逻辑上应该没有错误
stonespace 2011-12-10
  • 打赏
  • 举报
回复
很可能是你的字段名打错了,
stonespace 2011-12-10
  • 打赏
  • 举报
回复
vs也有图形化的sql语句编辑工具,
stonespace 2011-12-10
  • 打赏
  • 举报
回复
粗一看应该没错,你可以用sql server的sql编辑器生成sql语句,对比和你写的是否一样,

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧