我正在尝试在postgresql LIKE中使用下划线来执行对特定数据模式的搜索,但这似乎不起作用。
客户端版本为9.2.21,服务器版本为9.4.12。
例如
select *
from table1
where f1 like '___'
即使表中明显存在匹配项,也不会返回-例如,存在具有匹配值的数据-例如f1 = '123'
。
我想知道是否存在影响此行为的系统配置/参数?
或者这可以用其他方式解释吗?
答案 0 :(得分:6)
存储在定义为Service.articlesGetArticlesForEdition(editionId).subscribe(articles =>
{
for (let art of articles) {
this.articles.push(art);
}
}
的列中的值将用空格填充到所定义的长度。因此,当您在该列中存储char(9)
时,它实际上存储了'123'
您需要修剪那些尾随的空白:
'123 '
但是您应该完全避免使用where trim(f1) = '___'
类型。与char
相比,它没有任何优势,但是有几个缺点(您刚刚找到了一个缺点)