|
|
|
Сравнение массивов float4[]
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, есть поле 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} почему то работает как надо (т.е. не выводит ответа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2015, 14:02 |
|
||
|
Сравнение массивов float4[]
|
|||
|---|---|---|---|
|
#18+
Опечатался в PS хотел написать: P.S. special >= '{1,3750,1500,0}' при значении special в {0.5,2500,2980.7,1} почему то работает как надо (т.е. не выводит ответа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2015, 14:05 |
|
||
|
Сравнение массивов float4[]
|
|||
|---|---|---|---|
|
#18+
GeneralprogerОпечатался в PS хотел написать: P.S. special >= '{1,3750,1500,0}' при значении special в {0.5,2500,2980.7,1} почему то работает как надо (т.е. не выводит ответа) так они у вас как текстовые строки сравниваются скорее всего... --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2015, 14:16 |
|
||
|
Сравнение массивов float4[]
|
|||
|---|---|---|---|
|
#18+
Generalproger, вы неверно представляете сравнение массивов. они сравниваются как слова (ращной вообще-то длины), вместо букв -- элементы. а вам видимо хочется поэлементного сравнения Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2015, 14:17 |
|
||
|
Сравнение массивов float4[]
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 15:20 |
|
||
|
Сравнение массивов float4[]
|
|||
|---|---|---|---|
|
#18+
Ы2qwwq, массивы сравниваются поэлементно, но надо учитывать Table 9-45. Array Operators . а слова - побуквенно и чо ? ключевое тут -- " с позиционным приоритетом " если я и болван, что периодически наблюдаемо, то остальные тут вообще дятлы, очевидно я-то, в слове "поэлементно" имел в виду не сравнение с позиционным приоритетом , а bool_and на массиве поёлементных сравнений. что и привёл в скрипте. мыслящему -- достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 15:32 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38930591&tid=1998060]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 497ms |

| 0 / 0 |
