日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql中if在oracle怎么用_mysql和oracle的mybatis操作

發布時間:2025/3/11 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql中if在oracle怎么用_mysql和oracle的mybatis操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Oracle、MySQL插入時返回下一個主鍵的操作

Xml代碼

Oracle:

SELECT SEQ_ROLE.NEXTVAL AS ID FROM DUAL

insert into ROLE(ID, NAME, CREATE, MODIFY) values (#{id}, #{name}, sysdate, sysdate)

注意:這邊的keyProperty="id"中"id"指的是Java對象ROLE中的屬性,而并非數據庫中ROLE表的屬性。

1.2.Oracle、MySQL插入時返回當前主鍵的操作

Oracle:

SELECT seq_LSP_ROLE.currval as ROLEID from DUAL

insert into ROLE(ID, NAME, CREATE, MODIFY) values (#{id}, #{name}, sysdate, sysdate)

MySQL:

insert into role (name, create_time, update_time) values (#{name,jdbcType=VARCHAR}, now(), now())

注意:role表的role_id字段是自動增長的,所以插入時不需要傳入值;keyProperty="roleId"中"roleId"指的是Java對象Role中的屬性,而并非數據庫中role表的屬性。

2.查詢‘_’,'%' 這樣的字符

java: roleName= roleName.replaceAll("_", "/_");

roleName= roleName.replaceAll("%", "/%");

resultType="java.lang.Integer">

SELECT COUNT(1) FROM LSP_ROLE_TAB T

AND T.ROLE_NAME LIKE CONCAT('%',CONCAT(#{roleName},'%')) ESCAPE '/'

AND T.DELETE_FLAG = 0

3.插入、修改時存儲創建、修改時間為數據庫時間

Oracle: insert into role(ID, NAME, CREATE, MODIFY) values (#{id}, #{name}, sysdate, sysdate)

MySQL: insert into role (name, create_time, update_time) values (#{name,jdbcType=VARCHAR}, now(), now())

4.關系運算符的處理及轉義

主要處理的是小于/小于等于符號(”

...

包含在之間可避免

5.批量插入、修改、刪除操作

? insert into role_authority (role_id, authority_id) values ? ? ?(${item.roleId}, ${item.authorityId}) ?

? DELETE FROM ld_user WHERE id IN ? ???? #{item} ?

6.模糊查詢

AND t2.`name` LIKE "%"#{entName,jdbcType=VARCHAR}"%"

AND t3.`name` LIKE "%"#{prdName,jdbcType=VARCHAR}"%"

AND T.ROLE_NAME LIKE CONCAT('%',CONCAT(#{roleName},'%'))

6.分頁

resultMap="BaseResultMap">

select

from (select ROWNUM as rn,

FROM LSP_MUTUALINFO_TAB t

and t.SERVER_NAME like CONCAT('%',CONCAT(#{serverName},'%')) escape '/'

and t.SERVER_ID = #{serverId,jdbcType=VARCHAR}

)

#{iPageIndex} ]]>

1、將根據name相同?ID不同來的方式來判斷(id必須唯一)

delete from test a where exists (select null from test b where b.name=a.name and b.id>a.id);

2、用rowid?來代替其中的id,比上面的方法更適用,沒有字段唯一限制

delete from test a where exists (select null from test b where b.name=a.name and b.rowid>a.rowid);

3、??通過分析函數根據name?分組生成序號,然后刪除序號大于1?的數據

這里的ROW_NUMBER() OVER (partition by name order by name) 是先把name列升序,再為降序以后的沒條name記錄返回一個序號,

delete from test ??? where rowid in (select rowid ????????????????????? from (select rowid as rid, ?????????????????????????????????? row_number() over(partition by name order by id) as seq ????????????????????????????? from test) ???????????????????? where seq > 1);

總結

以上是生活随笔為你收集整理的mysql中if在oracle怎么用_mysql和oracle的mybatis操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。