在Postgresql LIKE中使用下划线

时间:2019-03-22 09:13:48

标签: sql postgresql padding sql-like sqldatatypes

我正在尝试在postgresql LIKE中使用下划线来执行对特定数据模式的搜索,但这似乎不起作用。

客户端版本为9.2.21,服务器版本为9.4.12。

例如

select * 
from table1 
where f1 like '___'
即使表中明显存在匹配项,也不会返回

-例如,存在具有匹配值的数据-例如f1 = '123'

我想知道是否存在影响此行为的系统配置/参数?

或者这可以用其他方式解释吗?

1 个答案:

答案 0 :(得分:6)

存储在定义为Service.articlesGetArticlesForEdition(editionId).subscribe(articles => { for (let art of articles) { this.articles.push(art); } } 的列中的值将用空格填充到所定义的长度。因此,当您在该列中存储char(9)时,它实际上存储了'123'

您需要修剪那些尾随的空白:

'123      '

但是您应该完全避免使用where trim(f1) = '___' 类型。与char相比,它没有任何优势,但是有几个缺点(您刚刚找到了一个缺点)