通配符的问题,送高手分,送高手分的问题

CDEFGAB 2004-05-06 09:18:45
有一个下拉框:
苹果
香蕉
西瓜
杮子
葡萄
蕃茄
榴莲
生梨

SELECT * FROM mc="苹果"
我查出了所有“名称”是苹果的资料,但是我用什么方法可以一下子,查出所有的项目呢,即,不用选择苹果、香蕉、、、、我只是选择一个全部,就列出所有的水果呢????

请高手帮我啊,不知道:Like什么的行不行

...全文
22 15 点赞 打赏 收藏 举报
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CDEFGAB 2004-05-06
不过我的这个下拉框是绑定数据表的,操作起来有点繁琐
  • 打赏
  • 举报
回复
zjcxc 元老 2004-05-06
or的效率肯定高于like
  • 打赏
  • 举报
回复
zjcxc 元老 2004-05-06
你将like语句放到查询分析器中,按Ctrl+L分析一下就知道了
  • 打赏
  • 举报
回复
8992026 2004-05-06
我的那是vb的写法,其他语言你自己改了
  • 打赏
  • 举报
回复
8992026 2004-05-06
or也影响效率的

这种问题最好在客户端判断,产生不同的sql 语句
  • 打赏
  • 举报
回复
zjcxc 元老 2004-05-06
放后面一样影响效率
  • 打赏
  • 举报
回复
8992026 2004-05-06
当然最好的方法是:
sql="SELECT * FROM ABC"
if cbo.text<>"全部" then
sql=sql & " WHERE mc ='" & cbo.text & "'"
end if
  • 打赏
  • 举报
回复
8992026 2004-05-06
%放后面对效率的影响不大
  • 打赏
  • 举报
回复
8992026 2004-05-06
实际就是:
sql="SELECT * FROM ABC WHERE mc like replace('" & cbo.text & "','全部','')+'%'"

cbo是你的下拉框


  • 打赏
  • 举报
回复
zjcxc 元老 2004-05-06
不建议用楼上的方法,效率不高.
  • 打赏
  • 举报
回复
8992026 2004-05-06
SELECT * FROM ABC WHERE mc like replace('苹果','全部','')+'%'

SELECT * FROM ABC WHERE mc like replace('全部','全部','')+'%'



  • 打赏
  • 举报
回复
zjcxc 元老 2004-05-06
这个不是通过like之类来实现,而是直接在查询条件中做处理
  • 打赏
  • 举报
回复
zjcxc 元老 2004-05-06
declare @mc varchar(10)
set @mc="苹果"

select * from ABC where @mc="全部" or mc=@mc
  • 打赏
  • 举报
回复
CDEFGAB 2004-05-06
我想在下拉框里加一项:全部,就完成所有的水果的查询,不知道可不可以??????谢谢
  • 打赏
  • 举报
回复
CDEFGAB 2004-05-06
SELECT * FROM ABC WHERE mc="苹果"
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-05-06 09:18
社区公告
暂无公告