1. 程式人生 > >sql 報:無效的列索引 可能的原因

sql 報:無效的列索引 可能的原因

今天遇到了sql報無效的列索引錯誤,在網上找了找問題,基本都在說是sql拼寫錯誤,

基本可以確定這個錯誤一般都是由低階失誤導致的,請注意檢查自己的sql拼寫

按照網上指出的問題去找,沒有和自己錯誤一樣的,最後在移除一個註釋後正常了,

我用的是idea,用ctrl+/ 加的註釋 ,也就是sql前加  --,

不知為何沒有生效,卻成了錯誤源頭,

在此記錄下防止自己忘記,另外其他幾種可能的拼寫錯誤如下

1.佔位符與引數數量不一致

例如當有一個佔位符?,但是再此處傳入兩個引數#{a},#{b},

2.sql拼接錯誤

如對於模糊查詢條件 a的拼接

a like '%'||#{a}||'%' 

注意每個%都要用 '' 包括起來  ,與引數用 || 拼接

當然也可以這樣寫 a like  CONCAT(CONCAT('%', #{a}), '%')

3.錯誤的註釋

這就是我遇到的情況了,我把不用的sql通過 --註釋掉,

但是註釋卻沒有正常生效,導致無效的列索引出現,刪掉後就好了

當然也可能有其他原因導致這種情況