gpt4 book ai didi

sql - 在 PostgreSQL 中按版本号解析记录

转载 作者:行者123 更新时间:2023-11-29 12:44:53 24 4
gpt4 key购买 nike

我有一个具有“版本”属性的记录表。版本存储为文本。我知道如何匹配特定版本(例如 WHERE version = '1.2.3'),但我希望能够在版本上使用比较运算符(<、>、= 等)编号(例如 WHERE version > '1.2.3')。

有谁知道实现此目的的好方法吗?

最佳答案

对于 versionsort,转换为 cidr 可能 是一种解决方案。它适用于琐碎的情况。非数字字符可能会破坏聚会。

-- some data
DROP table meuk;
CREATE table meuk
( id SERIAL NOT NULL PRIMARY KEY
, version text
);
INSERT INTO meuk(version) VALUES
( '1.1.1'), ( '1.1.2'), ( '1.1.11'), ( '1.1.102')
, ( '0.1.1'), ( '2.1.2'), ( '22.1.11'), ( '0.1.102')
;

SELECT * FROM meuk
ORDER BY version::cidr -- cast to cidr (less restrictive than inet)
;

结果:

DROP TABLE
CREATE TABLE
INSERT 0 8
id | version
----+---------
5 | 0.1.1
8 | 0.1.102
1 | 1.1.1
2 | 1.1.2
3 | 1.1.11
4 | 1.1.102
6 | 2.1.2
7 | 22.1.11
(8 rows)

关于sql - 在 PostgreSQL 中按版本号解析记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com