查询字段左侧包含的关键字SQL语句?

RFASK射频问问
RFASK射频问问官方账号
2005-04-25 01:20:36
文章系统是这样分类的

分类 Code
新闻中心 0001
技术文章 00010001
ASP 000100010001
娱乐文章 00010002
平面设计 0002
VI 00020001

这样根据分类标识ID记录了文章!字段为typeid

现在我要查询字段typeid最左边包含0001的记录怎么查询?

select * from 表名 where typeid 这里怎么写?



...全文
1321 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
RFASK射频问问 2005-04-25
  • 打赏
  • 举报
回复
sql="select * from wen where like '"& typeid &"%'"

这样也可以,但不知道哪种方法好?
RFASK射频问问 2005-04-25
  • 打赏
  • 举报
回复
zjcxc(邹建) 老师也来了!谢谢您

看来是我刚才是没有说清楚,因为我醒询的条件是变量可能是4位数,也能也是8位,16位。

我后来是这样搞的,您看这样在数据量大时效率高吗?要是给typeid建索引有什么不同?

typeid是变量

typeid=request("typeid")
B=len(typeid)
sql="select * from wen where Len(typeid)>="&B&" and Left(typeid, "&B&")="&typeid&""
zjcxc 元老 2005-04-25
  • 打赏
  • 举报
回复
--typeid字段上建立索引,然后用

select * from 表名 where left(typeid,4)='0001'

--或者:
select * from 表名 where typeid like '0001%'


由于是右键为模糊匹配,所以 like 能用上索引,这里不会存在like不能利用索引的问题.
long111 2005-04-25
  • 打赏
  • 举报
回复
同意: hlq8210(影子)

like 的效率不高,数据量大的时候不要用
hlq8210 2005-04-25
  • 打赏
  • 举报
回复
select * from 表名 where left(typeid,4)='0001'
不要用LIKE语句。。。。
RFASK射频问问 2005-04-25
  • 打赏
  • 举报
回复
select * from 表名 where left(typeid,4)='0001'
或者
select * from 表名 where typeid like '%0001'

第一种不行首页我的那0001到时候是变量,可能是4位也可能是8位,12位等,因为文章分类是无限的。

第二种也不行,我要查是从最左边开始包含!
hsj20041004 2005-04-25
  • 打赏
  • 举报
回复
select * from 表名 where left(typeid,4)='0001'
或者
select * from 表名 where typeid like '%0001'
RFASK射频问问 2005-04-25
  • 打赏
  • 举报
回复
我的是CMS系统用的,数据量到时候会相当的大,求各位老师多给几种方法,说说最哪咱方法效率最高!
xluzhong 2005-04-25
  • 打赏
  • 举报
回复
select * from 表名 where charindex('0001',typeid)>0

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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