sql语句like为什么索引无效? 5

select*fromuserswhereusernamelike'?%';为什么会出现索引无效的问题呢?我也试过like‘'||?||'%'。照样不好用。这是为什么呢?... select * from users where username like '?%';为什么会出现索引无效的问题呢?我也试过like ‘'||?||'%'。照样不好用。这是为什么呢? 展开
 我来答
夕撒夕阳
2014-01-20 · 贡献了超过109个回答
知道答主
回答量:109
采纳率:0%
帮助的人:27.2万
展开全部
like 要是使用索引 就必须这样写 like ‘a%’ 或者 ‘%a’,两边都加上是不会触发索引的。想想你也知道,没有一个确切的值怎么能按一定条件查找数据呢?‘%a%’这种写法只会造成全表扫描。
追问
不是啊,我写的是‘?%’
yc_aiolos
2014-01-20 · TA获得超过124个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:97.6万
展开全部
declare @a varchar(10)
set @a='?'
select * from ac01 where name like @a+'%'
更多追问追答
追问
?代表用户输入的内容,我想要的功能是搜索首字母为?的信息。
追答
看错你的意思了,已经改了。 @a就是需要输入的变量,可以做成一个存储过程,在其他程序中引用就行了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8a84e6a6b
2014-01-20 · 超过33用户采纳过TA的回答
知道答主
回答量:202
采纳率:0%
帮助的人:80.7万
展开全部
你怎么 看出 索引无效的? 我刚才建了一张表 试了一下 , 有效啊
更多追问追答
追问
com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围。   是这样报错的。
追答
sqlserver啊,我用的oracle  ,  oracle中 单个字符的通配是  "_" (下划线),不知道 问号是 啥意思,
是不是 你问号 有问题啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钱与岁不23
2014-01-20 · TA获得超过277个赞
知道小有建树答主
回答量:476
采纳率:0%
帮助的人:69.6万
展开全部
你这个 like是什么意思 并不是什么条件吧
更多追问追答
追问
对表中username字段的模糊搜索。
追答
select * from users where username like 'a%'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
互联网老魔
2014-01-20 · 超过16用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:24.7万
展开全部
你这个like语句符合所有情况,还不如不用
追问
不是呀,我是想做一个模糊搜索,功能是用户输入一个a系统便可以找出所有首字母为a的信息。
追答
like "a%"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式