我的桌子:
CREATE TABLE public.software
(
software_name text COLLATE pg_catalog."default",
version text COLLATE pg_catalog."default",
)
在该表中,我存储了在某些项目中使用的软件及其版本,并通过比较它们的版本来检查它们是否更新。我需要将版本信息存储为字符串,因为某些版本包含像“1.0.1-beta”这样的字符串。
我仍然找不到比较字符串的最佳方法。我使用以下(简化)查询:
SELECT '1.2.3' < '1.2.4' -- true
SELECT '1.2.3a' < '1.2.4B'
当我运行以下查询时:
select '3.0.0' > '26752' -- true
select '1.2.3a' < '1.2.3A' -- true
select 'i dont know' >= '2' --true
但是 3.0.0 小于 26752。1.2.3a (可能)是假的,如果我使用 lower() 函数我可以解决它。select '3.0.0' > '26752'或最后一个查询怎么样?