我试图在 postgresql LIKE 中使用下划线来搜索特定的数据模式,但它似乎不起作用。
客户端版本为 9.2.21,服务器版本为 9.4.12。
例如,
select *
from table1
where f1 like '___'
即使表中明显匹配也不会返回任何内容——即存在具有匹配值的数据——例如f1 = '123'
。
我想知道是否有影响此行为的系统配置/参数?
或者这可以用其他方式解释吗?
最佳答案
存储在定义为 char(9)
的列中的值将用空格填充到定义的长度。因此,当您在该列中存储 '123'
时,它实际上存储的是 '123 '
你需要修剪那些尾随的空白:
where trim(f1) = '___'
但是你应该完全避免 char
类型。与 varchar
相比,它没有任何优势,但有几个缺点(您刚刚发现了一个)
关于sql - 在 Postgresql LIKE 中使用下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55296273/