powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сравнение массивов float4[]
7 сообщений из 7, страница 1 из 1
Сравнение массивов float4[]
    #38929239
Generalproger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, есть поле special формата float4[], в нем хранятся деньги пользователя.
При покупке товара на сайте делал проверку
WHERE special > '{0,1500,0,30}'
Но сегодня внезапно осознал что запрос
WHERE special >= '{0,3750,1500,0}' выводит строку при ее значении в {0.5,2500,2980.7,1} т.е. как будто 1500 > 2500
Как это исправить или возможно есть другие варианты для расчетом с массивами?

P.S. special >= '{0,3750,1500,0}' при значении special в {0.5,2500,2980.7,1} почему то работает как надо (т.е. не выводит ответа)
...
Рейтинг: 0 / 0
Сравнение массивов float4[]
    #38929249
Generalproger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опечатался в PS хотел написать:
P.S. special >= '{1,3750,1500,0}' при значении special в {0.5,2500,2980.7,1} почему то работает как надо (т.е. не выводит ответа)
...
Рейтинг: 0 / 0
Сравнение массивов float4[]
    #38929274
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeneralprogerОпечатался в PS хотел написать:
P.S. special >= '{1,3750,1500,0}' при значении special в {0.5,2500,2980.7,1} почему то работает как надо (т.е. не выводит ответа)

так они у вас как текстовые строки сравниваются скорее всего...

--Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Сравнение массивов float4[]
    #38929276
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Generalproger,

вы неверно представляете сравнение массивов. они сравниваются как слова (ращной вообще-то длины), вместо букв -- элементы.

а вам видимо хочется поэлементного сравнения


Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
	ARRAY []::float4[] > array[0::float4,1500,0,30]
	,ARRAY[0.5::float4,2500,2980.7,1]>array[0::float4,1500,0,30]
	,ARRAY[0.5::float4]>array[0::float4,1500,0,30] -- тащемто -- вот что имеет вес

	-- полагаю вам нужно что-то из :
	,(SELECT bool_and(u>v) FROM (SELECT unnest(ARRAY[0.5::float4,2500,2980.7,1])u ,unnest (array[0::float4,1500,0,30]) v)foo )
...
Рейтинг: 0 / 0
Сравнение массивов float4[]
    #38930591
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

массивы сравниваются поэлементно, но надо учитывать Table 9-45. Array Operators .
...
Рейтинг: 0 / 0
Сравнение массивов float4[]
    #38930644
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeneralprogerЗдравствуйте, есть поле special формата float4[], в нем хранятся деньги пользователя.
При покупке товара на сайте делал проверку
WHERE special > '{0,1500,0,30}'
Но сегодня внезапно осознал что запрос
WHERE special >= '{0,3750,1500,0}' выводит строку при ее значении в {0.5,2500,2980.7,1} т.е. как будто 1500 > 2500
Как это исправить или возможно есть другие варианты для расчетом с массивами?

P.S. special >= '{0,3750,1500,0}' при значении special в {0.5,2500,2980.7,1} почему то работает как надо (т.е. не выводит ответа)


обьясните какое поведение вы хотите вообще? Я что то не вижу никаких проблем в том что вы привели.

--Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Сравнение массивов float4[]
    #38930662
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2qwwq,

массивы сравниваются поэлементно, но надо учитывать Table 9-45. Array Operators .
а слова - побуквенно
и чо ?

ключевое тут -- " с позиционным приоритетом "

если я и болван, что периодически наблюдаемо, то остальные тут вообще дятлы, очевидно

я-то, в слове "поэлементно" имел в виду не сравнение с позиционным приоритетом , а bool_and на массиве поёлементных сравнений. что и привёл в скрипте. мыслящему -- достаточно.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сравнение массивов float4[]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]