1. 程式人生 > >Oracle like模糊查詢-無效的列索引

Oracle like模糊查詢-無效的列索引

1、當寫成like('%?%')時會提示無效的列索引

改成like('%'||?||'%')時可以解決

下面為轉載內容

java.sql.SQLException: 無效的列索引

“無效的列索引”其實是個低階的錯誤,原因無非幾個:

1、sql串的?號數目和提供的變數數目不一致:

例如:jdbcTemplate.update(sql, new Object[] {newState,oldState});

如果sql裡面有1個?號,Object[]送了2個,就會報錯。

2、sql串裡的?號書寫不正確

英文?和中文?有時難以區分。

3、sql串的?號用''括了起來。

例如:sql="UPDATE abc SET abc.name='?' WHERE abc.id='?'";

把''去掉就可以了。

4,遇到這種情況select*from user where   info   like   %?%;  

雖然這是sql的寫法,但是在jdbc 中需要改成 select*from user where   info   like   ?;

如ps.setString(“%”+value+“%”);

相關推薦

Oracle like模糊查詢-無效索引

1、當寫成like('%?%')時會提示無效的列索引 改成like('%'||?||'%')時可以解決 下面為轉載內容 java.sql.SQLException: 無效的列索引 “無效的列索引”其實是個低階的錯誤,原因無非幾個: 1、sql串的?號數目

oracle Like模糊查詢與帶有關鍵字Reverse的索引應用

在對oracle的SQL優化過程中經常會遇到【like'%abc'】破壞索引的問題,但是如果真有此類需求,該如何在不破壞索引的基礎上進行查詢呢。 上程式碼 [email protected]> select reverse('123') from dua

oracle like模糊查詢簡單用法

簡單 rom 模糊 acl 用法 介紹 情況 文章 分享圖片 like 用法介紹: 1、“_”:匹配單個任意字符 select * from bqh3 where name like ‘_崔‘; 2、“%”:匹配0個或多個任意字符。但有三種情況如下:

oracle like模糊查詢的優化測試

三種like模糊查詢的優化: 第一種:like 'a%'這種,直接可走索引 第二種:like '%a'這種,需要用reverse反轉函式改寫SQL,再建立函式索引,如下:   改寫前:    select * from test where owner like '%SCO

使用全文索引技術實現高效的like模糊查詢功能

曾經在工作中遇到了一個難辦的問題:我們有一個表大概有50萬條資料,其中有一個欄位是字串型別需要實現like 模糊查詢,我們使用的是MySQL,雖然已經建立了索引,但是由於使用的是%a%模式匹配,很不給力,在大量併發下,資料庫會掛掉,或者使用者等到抓狂查詢結果還不出來,後來

Oraclelike模糊查詢及萬用字元

like 模糊查詢 我們只知道個別字母或者欄位,不太確定要查詢的準確資訊時,可以使用模糊查詢(即like),查詢出所有與自己已知的"零碎"資訊有關的全部資訊。 這就要用的like模糊查詢了,其萬用字

oracle 無效索引

出現這個問題的原因     罪魁禍首是   ? "select * from INDEX_MOCK im where im.gmt_modify > ? and im.gmt_modify <? and  rownum <= ?  order by im

.net like模糊查詢參數化

string sha parameter 錯誤 and 程序 報錯 sel csharp List<SqlParameter> paras = new List<SqlParameter>();

sql like模糊查詢的條件拼接

body con ted cond -c where sel apple b- 被坑了兩次,記錄加深記憶 oracle : select * from table_name where 1=1 <#if secondName?? &&

python中的mysql數據庫like模糊查詢

script art exec -m con python abc san exe 近期工作在使用python語言開發項目,工作中遇到了一個python連接mysq

記一次使用mybatis進行like 模糊查詢遇到的問題

bat 通過 模糊查詢 date 但是 AR 通配符 問題 解決辦法 "bdate like ‘#{date}%‘ and ..." 最開始這樣寫的· 將傳入的參數和%用單引號包起來,但是這會報錯 java.sql.SQLException: Parameter in

mybatis xml檔案中的大於、小於、及like模糊查詢的寫法

在xml中,特殊符號的轉義寫法如下: &lt; < &gt; > &lt;&gt; <> &amp; & &

mysql中like模糊查詢的優化

這是我在一個百萬級資料庫資料匯出遇到的問題 比如這個語句在這個資料庫查詢很慢: select a from tms where b like ‘%haha%’ order by time limit 100; 第一種優化方法(注意:這種方法只適用於haha開頭的): //將haha欄位和

mybaits LIKE 模糊查詢

1.  引數中直接加入%%   param.setUsername("%CD%");       param.setPassword("%11%"); <select id="selectPersons" resultTy

mybatis Example Criteria like 模糊查詢

用Mybatis程式碼生成工具會產生很多個XXXExample類,這些類的作用是什麼? 查閱了很多資料,在這裡總結歸納一下 簡介 XXXExample類用於構造複雜的篩選條件 它包含一個名為Criteria的內部靜態類,它包含將在where子句中一起結合的條件列

mybatis做like模糊查詢

1.  引數中直接加入%%   param.setUsername("%CD%");       param.setPassword("%11%"); <select id="selectPersons" resultType="person" para

laravel原生sql操作以及like模糊查詢的坑點

此篇文章基於 laravel版本:5.5 laravel基於DB的原生查詢可以使用 DB facade 執行查詢。DB facade 為每種型別的查詢提供了方法:select、update、insert、delete 和 statement。以下是知識點: (1)執行

Oracle模糊查詢中轉義用法

Oracle中模糊查詢中轉義的關鍵字是escape 具體用法如下 select * from DEPT_02_tmp a  where a.dname like 'IT/_%'escape'/'; escape後面接的是轉義識別符號  識別符號後面跟的是 需要轉義的內

mysql 優化 - like模糊查詢優化

在使用msyql進行模糊查詢的時候,很自然的會用到like語句,通常情況下,在資料量小的時候,不容易看出查詢的效率,但在資料量達到百萬級,千萬級的時候,查詢的效率就很容易顯現出來。這個時候查詢的效率就顯得很重要! 一般情況下like模糊查詢的寫法為(field已建立索引): SE

mysql正則表示式,實現多個欄位匹配多個like模糊查詢

現在有這麼一個需求 一個questions表,欄位有題目(TestSubject),選項(AnswerA,AnswerB,AnswerC,AnswerD,AnswerE) 要求欄位不包含png,jpg,jpeg,gif  正常情況下會這麼寫 select * from questions