LIKE运算符的替代方案? [英] Any Alternative to LIKE operator ?
问题描述
我有以下查询:
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屋!