今天寫代碼的時候遇到一個問題:根據部門ID搜索專案:
部門id在物體類的定義是:private String orgId; //歸口單位id
在資料庫是:VARCHAR2(20)
當查詢時select * from ... where orgId in(9007,9005)
select * from ... where orgId in('9007','9005'),兩種查詢方式都不會報錯
uj5u.com熱心網友回復:
在資料庫是:VARCHAR2(20)當查詢時select * from ... where orgId in(9007,9005)
select * from ... where orgId in('9007','9005'),兩種查詢方式都不會報錯
因為你的欄位型別是 varchar型,而 where orgId in(9007,9005) 寫了兩個數值,這里就存在一個隱式轉換,即 OrgId 轉換成數值型后,才做的比較,肯定用不到索引
如果 你的資料庫中,存了一個不 純數字的 orgid ,那么第一個語就會出錯。
所以,你要用第二種。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/68205.html
標籤:開發
