0

我在 AgnsGraph 1.3 版中使用过,但我没有在运算符中使用 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);

错误:“MATCH”或附近的语法错误第 3 行:WHERE name IN (MATCH (a:person) WHERE a.age = 102 RETURN a....

4

1 回答 1

0

您应该在 AgensGraph 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 ( MATCH (a:person) WHERE a.age = 102 返回 a.name) t1);

姓名 | 年龄 ------+----- ljh | 102

于 2019-02-26T12:17:14.820 回答