我在AgensGraph版本1.3中使用但我没有在运算符中使用where子句。
e.g:
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行:名称为IN(匹配(a:人)WHERE a.age = 102返回....
你应该在AgensGraph ver 1.3版本中使用regexp。因为,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( MATCH(a:person)WHERE a.age = 102 RETURN a.name)t1);
名字|年龄------ + ----- ljh | 102