Неопределенная функция: 7 ОШИБКА: оператор не существует: public.ltree public. & Lt; public.ltree []

У меня проблема с PHP при использовании ltree от PostgreSQL,
Я делаю это в SQL:

SELECT * FROM tabla t
WHERE t.parent_path <@ (
select array_agg(t1.parent_path)
from tabla t1
where t1.id in (1000035, 1000045, 1000055, 1000065)
)

Я запускаю запрос в phpmyadmin, и он работает нормально, но когда я копирую и вставляю, в PHP он не работает. Я провел небольшое исследование и обнаружил, что в PHP
Мне нужно заменить "<@" and "@>" for "OPERATOR(public.<)" and "OPERATOR(public.>)" соответственно.

Я проверяю это в php с помощью простого запроса ltree, например:

$sql = "SELECT * FROM tabla t
WHERE t.parent_path OPERATOR(public.<) (
select t1.parent_path
from tabla t1
where t1.id in = 1000035
)";
$conn = Zend_Registry::get('conexion');
$respdata = $conn->execute($sql);
return $respdata->fetchAll(PDO::FETCH_ASSOC);

и это работает нормально, но дело в том, что в реальном запросе, который я хочу выполнить, я имею в левой части ltree в другой стороне ltree[], а также
когда я использую «ОПЕРАТОР» (общедоступный.<) «это дает мне эту ошибку:

«Неопределенная функция: 7 ОШИБКА: оператор не существует: public.ltree public.< public.ltree []«

Это то, что я пытаюсь сделать …

$sql = "SELECT * FROM tabla t
WHERE t.parent_path OPERATOR(public.<) (
select array_agg(t1.parent_path)
from tabla t1
WHERE t1.id IN (1000035, 1000045, 1000055, 1000065)
)";
$conn = Zend_Registry::get('conexion');
$respdata = $conn->execute($sql);
return $respdata->fetchAll(PDO::FETCH_ASSOC);

Любой совет …. ткс.
Извините, если мой английский не очень хорош.

2

Решение

Ну, спасибо IMSoP, я нашел ответ.

Изменить

OPERATOR(public.<)

за

OPERATOR(public.<@)

Ткс много.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]