LIKE运算符的替代方案? [英] Any Alternative to LIKE operator ?

查看:111
本文介绍了LIKE运算符的替代方案?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下查询:

i必须从用户输入开始选择所有记录

用户输入: 123



选择TBLUSERACTIVITIES.UID_R,TBLUSERACTIVITIES.ACTION,TO_CHAR(TBLUSERACTIVITIES.DATE_R,'MM / DD / YYYY HH24:MI')DATE_R

来自EAITEMP .TBLUSERACTIVITIES TBLUSERACTIVITIES

WHERE(TBLUSERACTIVITIES.EVENTID1喜欢 '123 %')或(TBLUSERACTIVITIES.EVENTID2喜欢' 123 %')



要返回记录,需要花费大量时间。所以我需要通过用其他逻辑替换like运算符来减少时间。



先谢谢

解决方案

这里有一些建议,对于 Oracle Oracle中的substr或LIKE更快吗?在堆栈溢出 [ ^ ]。


这是因为它会为每个查询进行全表扫描。

你需要一个文本索引 [ ^ ]


而不是在sql staements中编写多个LIKE,你可以使用N'123%'

i have below query :
i have to select All the records wheixh start from user input
Like User Input : 123

SELECT TBLUSERACTIVITIES.UID_R, TBLUSERACTIVITIES.ACTION, TO_CHAR(TBLUSERACTIVITIES.DATE_R,'MM/DD/YYYY HH24:MI') DATE_R
FROM EAITEMP.TBLUSERACTIVITIES TBLUSERACTIVITIES
WHERE (TBLUSERACTIVITIES.EVENTID1 LIKE '123%') or (TBLUSERACTIVITIES.EVENTID2 LIKE '123%')

To return the records, it taking much of time. So i need to reduce the time by replacing like operator with other logic.

Thanks in Advance

解决方案

Here some suggestions, for Oracle: "Is substr or LIKE faster in Oracle?" at Stack Overflow[^].


This is because it will make a full table scan for every query.
You need a text index[^]


Rather than writing multiple LIKE in sql staements you can use N'123%'


这篇关于LIKE运算符的替代方案?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆