Моя таблица:
CREATE TABLE public.software
(
software_name text COLLATE pg_catalog."default",
version text COLLATE pg_catalog."default",
)
В этой таблице я храню программное обеспечение и его версии, которые я использую в некоторых проектах, и проверяю их обновления, сравнивая их версии. Мне нужно хранить информацию о версии в виде строки, потому что некоторые версии содержат строки, такие как «1.0.1-бета».
Я все еще не мог найти лучший способ сравнить строки. Я использую следующий (упрощенный) запрос:
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 (), я могу решить ее. Как насчет выберите '3.0.0'> '26752' или последний запрос?