sql出現(xiàn)無(wú)效的列索引原因:1、占位符與參數(shù)數(shù)量不一致;2、sql拼接錯(cuò)誤,注意每個(gè)【%】都要用 【”】 包括起來(lái) ?,與參數(shù)用【||】拼接;3、錯(cuò)誤的注釋。
【相關(guān)學(xué)習(xí)推薦:SQL視頻教程】
sql出現(xiàn)無(wú)效的列索引原因:
基本可以確定這個(gè)錯(cuò)誤一般都是由低級(jí)失誤導(dǎo)致的,請(qǐng)注意檢查自己的sql拼寫
按照網(wǎng)上指出的問(wèn)題去找,沒(méi)有和自己錯(cuò)誤一樣的,最后在移除一個(gè)注釋后正常了,
我用的是idea,用ctrl+/ 加的注釋 ,也就是sql前加? –,
不知為何沒(méi)有生效,卻成了錯(cuò)誤源頭,
在此記錄下防止自己忘記,另外其他幾種可能的拼寫錯(cuò)誤如下
1.占位符與參數(shù)數(shù)量不一致
例如當(dāng)有一個(gè)占位符?,但是再此處傳入兩個(gè)參數(shù)#{a},#{b},
2.sql拼接錯(cuò)誤
如對(duì)于模糊查詢條件 a的拼接
a like ‘%’||#{a}||’%’?
注意每個(gè)%都要用 ” 包括起來(lái)? ,與參數(shù)用 || 拼接
當(dāng)然也可以這樣寫 a like? CONCAT(CONCAT(‘%’, #{a}), ‘%’)
3.錯(cuò)誤的注釋
這就是我遇到的情況了,我把不用的sql通過(guò) –注釋掉,
但是注釋卻沒(méi)有正常生效,導(dǎo)致無(wú)效的列索引出現(xiàn),刪掉后就好了
當(dāng)然也可能有其他原因?qū)е逻@種情況