【发布时间】:2017-05-05 21:37:20
【问题描述】:
我正在使用 Postgresql 来存储 Ruby gem 版本号。我想根据用户提供的自定义谓词和基本版本过滤这些版本,为此我将两个版本都转换为整数数组(以便于比较):4.2.0 变为 '{4,2,0}'。
这很好用:
'{4,0,0}' < '{4,1,0}' # yields TRUE
不过,当数组长度不同时,我会遇到问题:
'{4}' < '{5,0,0}' # yields TRUE
'{4,1,2}' < '{4,1}' # also yields TRUE when it should be FALSE
我在文档中找不到与此特定问题相关的任何内容。我怎样才能实现我所追求的?如果元素较少的数组可以正确填充零(这将导致我的预期行为),那就太好了。
【问题讨论】:
-
不确定“数组”是什么意思,但
select '{4,1,2}'::int[] < '{4,1}'::int[];产生FALSE... -
天哪,我肯定累了。感谢您指出了这一点!您可以为其添加答案。
-
让我们认为这只是一个错字:o) 祝你好运。
标签: arrays postgresql comparison