当前位置:首页 > 站长知识 > 数据库 > 正文内容

Mysql转PostgreSQL注意事项

2024-11-29数据库39

Mysql转PostgreSQL注意事项

- ifnull()和COALESCE()

1
2
3
4
5
mysql--ifnull()
改pg--COALESCE()
ps:
mysql -- ifnull(a.audit_result, '')
pgsql -- COALESCE(a.audit_result, '')

- date_format()和to_date()

1
2
3
4
5
mysql--date_format()
改pg--to_date(),声明类型 ‘ ::text'
ps:
//pg数据库中不能使用'%',如 %y-%m-%d
to_date(create_time::text, 'YY-MM-DD')

- find_in_set()和ANY (string_to_array(‘’, ‘,’))

1
2
3
4
5
mysql--find_in_set()
改pg--ANY (string_to_array(some_column, ','))
ps:
SELECT t.dept_id FROM sys_dept t WHERE find_in_set('100', ancestors)
SELECT t.dept_id FROM sys_dept t WHERE '100' = ANY (string_to_array(ancestors, ','))

- sysdate()和now()

1
2
mysql--sysdate()
改pg--now()

- 模糊匹配

1
2
3
// 如果使用 concat参数,pg数据库需配置隐形转换类型
mysql-- like concat('%', #{testItem}, '%')
改pg-- ilike '%'|| #{testItem} ||'%'  或  like concat('%', #{testItem}, '%')

- GROUP_CONCAT()和string_agg()

1
2
mysql-- GROUP_CONCAT(t.cname)
改pg-- array_to_string(array_agg(t.cname),',') 或 string_agg(t.cname,',')

- locate()和strpos()

1
2
mysql-- locate()
改pg-- strpos()