Mysql转PostgreSQL注意事项

- ifnull()和COALESCE()

mysql--ifnull()
改pg--COALESCE()
ps:
mysql -- ifnull(a.audit_result, )
pgsql -- COALESCE(a.audit_result, )

- date_format()和to_date()

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(‘’, ‘,’))

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()

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

- 模糊匹配

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

- GROUP_CONCAT()和string_agg()

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

- locate()和strpos()

mysql-- locate()
改pg-- strpos()
经验分享 程序员 微信小程序 职场和发展