sql - 在 Postgresql LIKE 中使用下划线

标签 sql postgresql padding sql-like sqldatatypes

我试图在 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/

相关文章:

sql - 在数据库 ORM 中应该将字符串映射到什么?

java - 计算 H2 数据库中的重复行数

postgresql - 如何转储 PostgreSQL 数据库结构(每个对象在单独的文件中)

postgresql - 触发函数参数 PLSH

mysql - 具有列名的多列的最大值?

android - SQLite 和 SQL 有什么区别

sql - 如何在 Rails + Postgres 中重命名 hstore 键

.net - TabControl 填充不适用于经典主题

css - 如何使用 LESS 为每个第 n 个元素添加不同的 CSS 样式,具体取决于 n

android - 显示 png 时隐藏 1px 边距