Для чего используются переменные-массивы в выпуске AgensGraph ver1.3?
Я использовал в версии 1.3 AgensGraph, но не использовал оператор where в операторе.
например:
eya=# CREATE (a:person {name:['ljh','jhlee'], age:102});
GRAPH WRITE (INSERT VERTEX 1, INSERT EDGE 0)
CREATE TABLE t_name (
name text,
age int
);
CREATE TABLE
insert into t_name values ('ljh', '102');
INSERT 0 1
eya=# insert into t_name values ('khan', '101');
INSERT 0 1
eya=# SELECT *
FROM t_name
WHERE name IN (MATCH (a:person) WHERE a.age = 102 RETURN a.name);
ОШИБКА: синтаксическая ошибка в или около "МАТЧА". ЛИНИЯ 3: ГДЕ ИМЯ В (МАТЧ (a:person) ГДЕ a.age = 102 ВОЗВРАЩАЕТСЯ....
1 ответ
Вы должны регулярное выражение в выпуске AgensGraph ver 1.3. потому что, 1.3 версия авто, и явное приведение типов не работает. так. Ваш запрос выполнен ниже
SELECT * FROM t_name WHERE name IN (SELECT regexp_replace(unnest(string_to_array(t1.name::text, ',')),'[^a-zA-Z0-9]', '', 'g') FROM (МАТЧ (a:person) ГДЕ a.age = 102 ВОЗВРАЩАЕТСЯ a.name) t1);
имя | возраст ------+----- ljh | 102