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