ngql中in的用法和mysql中in的用法是一致的吗?

请问ngql中in的用法和mysql中in的用法是一致的吗?都是接在where后面进行集合范围过滤吗?有没有什么需要注意的?

目前不支持在lookup语句中使用。


这样写有问题吗?请问应该怎么修改呢?

go FROM hash(“UR12345”) OVER follow BIDIRECT where $$.user.user_no in (“UR23456”) YIELD follow.intimacy,follow.status,follow.status_change_time,$$.user.active_time as active_time,$$.user.user_no as user_no,$$.user.user_name as user_name,$$.user.head_img_url as head_img_url

in 后面是个list,换成[]试试呢

起点和终点已知,可以试试fetch prop on

但是我还需要查询边的属性,fetch prop on貌似不能同时查询定点和边的属性

是点和边的属性一起返回吧,稍等我看看哈

$var = GO FROM 100 OVER follow YIELD follow._src AS s, follow._dst AS d;
FETCH PROP ON follow $var.s -> $var.d YIELD follow.degree;
你说的是这个示例吗?但我这个终点不是固定的,有可能是一个,也有可能是多个,所以需要用in查询

也就是说起点是固定的,终点不固定,终点是通过用户编号这一属性来筛选的是吗

1 个赞

对的!

lookup on users where user.user_no == hash(XX) yield user.user_no as no |
go from no over follow bidirect yield …
这样可以吗

1 个赞

参考lookup 文档试试
https://docs.nebula-graph.com.cn/manual-CN/2.query-language/4.statement-syntax/2.data-query-and-manipulation-statements/lookup-syntax/

你这里没有筛选终点啊,我是需要筛选一个或多个终点用户的

用lookup筛选了啊

1 个赞

因为你用了bidirect,所以就无所谓,终点和起点了,他都会查出来了,从这个点出去的边和指向这个点的边

1 个赞

:joy:但这不是我要的效果了,好像ngql没有in关键字

有啊,但是不能这么用
https://docs.nebula-graph.io/2.0/3.ngql-guide/5.operators/7.string/

1 个赞

2.x才支持list/set/map和in语法, 你用的1.x, 不支持的
2.x中:
list写法: [a, b, c]
set写法: {a, b, c}
map写法: {name:“jie”, age:18}