MyBatis中的<where>標籤和where子句的區別
MyBatis中的標籤和where子句的區別
<select id="selectAll" resultMap="BaseResultMap" parameterType="***">
select <include refid="Base_Column_List"></include>
from sys_log
<where>
<if test="username!=null and username!=''">
and username like concat ('%',#{username},'%')
</if>
<if test="userId!=null and userId!=''">
AND user_Id=#{userId}
</if>
<if test="operation!=null and operation!=''">
AND operation LIKE concat('%',#{operation},'%')
</if>
<if test="startTime!=null and startTime!=''">
AND create_time >= #{startTime}
</if>
<if test="endTime!=null and endTime!=''">
AND create_time <= #{endTime}
</if>
</where>
</select>
< where >標籤為baiMyBatis的動態語句
上述程式碼中若baiwhere標籤裡的if全不成立,則不執行where語句。
在使用< where >標籤的情形下編譯時會自動刪除 多餘的 AND和OR
<select id="selectByParams" parameterType="map" resultType="user">
select * from user
<where>
<if test="id != null ">id=#{id}</if>
<if test="name != null and name.length()>0">
and name=#{name}
</if>
<if test="gender != null and gender.length()>0">
and gender = #{gender}
</if>
</where>
</select>
若第一個if標籤裡ID的值為bainull的話,那麼列印出來的SQL為:select * from user where name=”xx” and gender=”xx”
相關文章
- SQL中 where 子句和having子句中的區別SQL
- SQLite中的WHERE子句SQLite
- SQL中where和on的區別SQL
- truncate和不帶where子句的delete, 以及drop區別delete
- SQL 中having 和where的區別SQL
- 詳解MySQL中WHERE子句的用法MySql
- MyBatis系列(七):MyBatis動態Sql之choose,where,set標籤的用法MyBatisSQL
- SQL中Having與Where的區別SQL
- MySQL之Where和Having的區別MySql
- where和having的區別小結
- SQL join中on與where區別SQL
- 深入Oracle的left join中on和where的區別詳解Oracle
- mybatis的 choose -- when test -- otherwise 標籤和 if test 標籤的區別MyBatis
- oracle之group by,having和where的區別Oracle
- MyBatis從入門到精通(七):MyBatis動態Sql之choose,where,set標籤的用法MyBatisSQL
- 資料庫中where與having的區別資料庫
- whereRaw 與 where (\DB::raw ()) 的區別
- mysql的having和where有什麼區別MySql
- Mysql-left join on後接and,和where的區別MySql
- MySQL最佳化WHERE子句(轉)MySql
- SQL JOIN 中 on 與 where 有何區別SQL
- Oracle中where子句中條件的物理執行順序Oracle
- SQL中on條件與where條件的區別[轉]SQL
- swift 中的 whereSwift
- SAP MM MIGO介面‘Where’標籤頁裡的storage binGo
- MySQL怎樣最佳化WHERE子句(轉)MySql
- 【實驗】where子句的解析順序及執行效率
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- left join,right join,inner join的條件on和where的區別
- powershell中的where和foreach比較
- MySQL-WHERE子句 以及 邏輯操作符MySql
- ORACLE SQL開發where子句之case-whenOracleSQL
- Meta標籤中name和http-equiv的區別HTTPUI
- having和where
- MERGE新特性(UPDATE WHERE,DELETE WHERE,INSERT WHERE)delete
- CV關於Mysql中ON與Where區別問題詳解buaMySql
- SQL分組中WHERE和HAVING的異同SQL
- MyBatis中#{}和${}的區別詳解MyBatis