Как отфильтровать продукт по опции через диапозон чисел?
Есть Ток, нужно отсортировать его от и до, с where все понятно как сделать, а как с msProducts? веть потом еще нужно их вывести. Пробовал вот так:
1)
Если вводить так
1)
$where_range1 = "TVtok.value >= 500 AND TVtok.value <= 600";
$where[] = $where_range1;
2)$where[] = array("tok:>=" => 500, "AND:tok:<=" => 600);
Выдает ошибку.Если вводить так
'{"tok:=":500}'
— то это работает. P.S. записи выше делал видом так же как и эта запись, но все равно кидает все не сортируя. Комментарии: 9
Конечно пытался вариантом
'{"tok:>":500, "AND:tok:<":600}'
Все равно кидает не фильтруя. 'where' => '{"Data.options.tok:=":550}'
Это тоже не работает {"tok:>":"500","tok:<":"600"}
Это тоже пробовал, в итоге он дает все то что больше 500 и что меньше 600!!!
А вам как надо?
Ну так еще попробуйте
Ну так еще попробуйте
["`tok`.`value` BETWEEN 500 and 600"]
Нужно от и до, то есть не меньше 500 допустим и не больше 600, выше запись тоже не работает, в optionFilters там вообще какие-либо sql не работает, а в where не может достать ток
Пробовал через leftjoin вместе с select, тоже не работает.
&leftJoin=`{
"msProductOption":{
"class":"msProductOption",
"on":"msProductOption.value = 'tok'"
}
}`
&select=`{
"msProduct":"*",
"msProductOption":"CAST(msProductOption.value AS INT) as tok"
}`
&where = `{"tok:=":550}`
Пробовал через такой join
&leftJoin=`{
"msProductOption":{
"class":"msProductOption",
"on":"`tok`.product_id = Data.id AND `tok`.key = 'tok'"
}
}`
&where = `{"0":["`tok`.`value` BETWEEN 500 and 600"]}`
Как только не пробовал, сделал обходным путем
{"tok:IN":[500,600]}
и просто потом через range добавил еще туда чисел. P.S BETWEEN не работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.