PostgreSQL 8.4如何实现与MySQL等效的CONCAT拼接条件查询
PostgreSQL 8.4 兼容写法调整方案
PostgreSQL 8.4 未内置 CONCAT 函数(该函数为 PostgreSQL 9.1 及以上版本的内置函数),可使用 PostgreSQL 原生字符串连接操作符 || 实现等价逻辑,调整后的语句如下:
SELECT * FROM users WHERE first_name || ' ' || last_name = 'John Doe';
补充说明
- 上述写法和原 MySQL 中
CONCAT的默认行为完全一致:若first_name或last_name任意字段值为NULL,整条拼接结果会返回NULL,不会命中匹配条件。 - 如果业务需要将
NULL作为空字符串处理,避免存在值的字段因为另一个字段为NULL导致匹配失败,可以使用COALESCE函数处理空值:
SELECT * FROM users WHERE COALESCE(first_name, '') || ' ' || COALESCE(last_name, '') = 'John Doe';
内容的提问来源于stack exchange,提问作者John Roberts
相关产品推荐
相关产品推荐

