Несколько условий в where
пытаюсь сделать выборку
PS использую чистый SQL потому что условий может быть больше 2, а при JSON они все равно обрежутся до 2 потому что ключ одинаковый. По крайней мере у меня обрезаются, если можно не обрезать то это тоже вариант.
[[!pdoPage?
&parents=`9`
&depth=`2`
&tpl=`tpl.tpl`
&sortby=`pagetitle`
&sortdir=`ASC`
&tvPrefix=``
&includeTVs=`test, NameReal, TC`
&where=`["
TVtest.value = '5541' OR TVtest.value = '5172'
"]`
&limit=`30`
]]
выдает все ресурсы родителя 9, в логах пишет 0.0565951: Added where condition: 0=, modResource.parentи так далее… что не так?
PS использую чистый SQL потому что условий может быть больше 2, а при JSON они все равно обрежутся до 2 потому что ключ одинаковый. По крайней мере у меня обрезаются, если можно не обрезать то это тоже вариант.
Комментарии: 8
некорректный json
["
TVtest.value = '5541' OR TVtest.value = '5172'
"]
так в логах вообще пропало упоминание про условие
0.0556102: Added where condition: modResource.parent:INсинтаксис я брал из этого поста, там одинарные кавычки были
синтаксис я брал из этого поста, там одинарные кавычки былисинтаксис верный, но json некорректный.
В том же посте есть упоминание онлайн сервиса для проверки json.
Проверь, исправь ошибку и все.
на тот сервис у меня антивирус ругается, но да, нужно было вытянуть в одну строку
&where=`["TVtest.value = '5541' OR TVtest.value = '5172'"]`
теперь так0.0597908: Added where condition: 0=TVtest.value = '5541' OR TVtest.value = '5172', modResource.parentи выборка теперь дает пустой результат вместо 100%, а в дочерних документам точно есть удовлетворяющие условию.
в итоге вот рабочий код, может кому поможет
[[!pdoPage?
&parents=`9`
&depth=`2`
&tpl=`tpl.tpl`
&sortby=`pagetitle`
&sortdir=`ASC`
&tvPrefix=``
&includeTVs=`test, NameReal, TC`
&where=`["test = '5541' OR test = '5172'"]`
&limit=`30`
]]
еще можно было написать
&where=`{"test":"5541","OR:test":"5172"}` или &where=`{"test:IN":['5541','5172']}`
первый вариант годится только для 2 условий, при большем количестве будет обрезаться, по ссылке выше это разбирали, а мне нужно чтобы условий было неограниченное количество, ну до 20 по крайней мере точно.
.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.