sql中的or與and的執行順序問題
<select id="countAssetTab" resultType="Integer" parameterType="HashMap">
SELECT COUNT(1) FROM TTRD_ASSET_MANAGE_PLAN_EXTEND
<where>
<if test="i_code != null and i_code !=''">
AND (I_CODE = #{i_code}
OR I_CODE = CONCAT(#{i_code},'(temp)'))
</if>
<if test="a_type != null and a_type !=''">
AND A_TYPE = #{a_type}
</if>
AND ZMZC_FLAG = 1
</where>
</select>
如上,是我在公司專案中寫的程式碼,我遇到的問題是,在
AND (I_CODE = #{i_code}
OR I_CODE = CONCAT(#{i_code},'(temp)'))
程式碼部分我第一次沒有應用括號的情況下,查詢出來的資料是不正確的,因為在sql語句中的執行順序是not>and>or的,
因此在or的部分沒有使用括號的情況下,將當前的語句變成了
AND (I_CODE = #{i_code})
OR (I_CODE = CONCAT(#{i_code},'(temp)')
AND A_TYPE = #{a_type}
AND ZMZC_FLAG = 1)
所以導致一直查詢到的資料不正確。
相關文章
- SQL中rownum和order by的執行順序的問題SQL
- SQL語句中的AND和OR執行順序問題SQL
- mysql 中sql語句關鍵字的書寫順序與執行順序MySql
- Sql執行順序SQL
- SQL 語句的執行順序SQL
- SQL 執行順序 你懂的SQL
- connect by與where條件執行順序問題
- 關於defer執行順序問題
- sql mysql 執行順序 (4)MySql
- SQL語句執行順序SQL
- SQL語句各子句的執行順序SQL
- 可看執行順序的xplan.package.sqlPackageSQL
- SQL Server SQL語句執行順序SQLServer
- C++輸出流cout的執行順序問題C++
- 【Oracle】where條件執行順序(上篇的問題延伸)Oracle
- GROUPBY 和開窗函式執行順序的問題函式
- Java中,類與類,類中的程式碼執行順序Java
- unittest.TestCase中測試用例執行順序問題
- JavaScript的執行順序JavaScript
- SQL 查詢語句的執行順序解析SQL
- Hive SQL語句的正確執行順序HiveSQL
- sql語句執行順序與效能優化(1)SQL優化
- Oracle 優化器與sql查詢執行順序Oracle優化SQL
- SQL Server中SELECT語句執行順序解析SQLServer
- sql select語法執行順序SQL
- 你瞭解一條sql的執行順序嗎SQL
- SQL語句中SELECT語句的執行順序SQL
- Oracle SQL語句執行流程與順序原理解析OracleSQL
- Oracle 最佳化器與sql查詢執行順序OracleSQL
- Qt中連線到同一signal的多個slots的執行順序問題QT
- 命令執行順序控制與管道
- Java for迴圈中語句執行的順序Java
- oracle實用sql(15)--檢視SQL執行計劃的順序OracleSQL
- js基礎進階–promise和setTimeout執行順序的問題JSPromise
- UITableView停止載入中的動畫的順序問題UIView動畫
- 關於 Promise 的執行順序Promise
- Spring Aop的執行順序Spring
- CSS規則的執行順序CSS