数据库编码技巧

2023-04-05  本文已影响0人  追风的云月
1. mapper

不能用 < 会识别为尖括号

2. Oracle的number在Java中的转换

用bigdecimal接收

3. 数据库ResultType

返回的是基本类型,不是List,会自动进行一条或者多条的转换;

4. oracle判断字段内容是否为空

is null is not null;

5. oracle字段如果是null就赋值别的值

NVL();COALESCE()

6. 用一张表更新另一张表
7. # ORACLE分组排序后获取第一条和最后一条值
select id,wm_concat(name) as qsgt from (
  select id,name from (-- 分组排序取出第一条和最后一条
    select
    t1.id,
    t1.name,
    row_number() over(PARTITION BY t1.id order by t1.name) rowss1,--第一条
    row_number() over(PARTITION BY t1.id order by t1.name desc) rowss2--倒数第一条
    from t_test t1
    where t1.pid= '0'
  )
  where rowss1='1' or rowss2='1'
) GROUP BY id
http://t.zoukankan.com/likui-bookHouse-p-11534130.html
8. MySQL中 INSERT + SELECT 的使用

https://blog.csdn.net/weixin_45740811/article/details/122215503
insert into select from 用一张表的数据去导入另一张表
如果是select into 那目标表可以不存在
insert into的时候 如果select某列数据为空 那么不会更新目标表原有的数据

9. Mybatis - 无效的列类型: 1111

列名和xml里面的名称没有对应上

10. SQL ambiguous

select出来重复列名,多个null也算

11. oracle没有limit 用rownum
12. substr在数据库里面截取字段
13. regexp_like 像正则一样判断字段
14. wm_concat
15. replace
16. <> 不等于
17. instr(str, searchStr, -1)实现

instr(str, searchStr, -1)实现lastIndexOf,第三个参数为1实现indexOf

18. 按字段分组查询符合条件记录的方法

https://blog.csdn.net/sweeper_freedoman/article/details/52753163

19. 无法转换为内部表示 。Error attempting to get column ‘XXX‘ from result set.

有一次,数据库里面是11.11,但是Java写的是integer,所以报这个错误
数据库字段类型与项目实体类中定义的类型不同

20. SQL查询是否有某条数据

不用count,用select 1 from table limit 1

21. 日志表的设计

建查询索引;主键用bigint自增
http://mysql.taobao.org/monthly/2017/09/08/

22. every derived table must have its own alias

每个组装的表都要有自己的别名 select t.* from (select) t

23. limit和offset
24. 窗口函数排序

rank是关键字

25. datetime 和 timestamp

timestamp带时区信息,可以处理成当地时区的时间
datetime是存什么返回什么,不能做转换

26 resultMap

用来自定义映射实体类和数据库查询结果

27 resultType

使用基础数据类型和实体类完全一致的情况下的实体类;使用Map是不知道会查询多少字段出来的情况,不过注意只能查出单条数据

mybatis plus 使用sum
上一篇 下一篇

猜你喜欢

热点阅读