Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将查询结果强制转换为OrientDB中的字符串_Sql_Casting_Subquery_Orientdb - Fatal编程技术网

Sql 将查询结果强制转换为OrientDB中的字符串

Sql 将查询结果强制转换为OrientDB中的字符串,sql,casting,subquery,orientdb,Sql,Casting,Subquery,Orientdb,作为测试,我正在运行查询 orientdb {pumpup}> select objectId from post where objectId="6LTMvSXfM2" ----+-----+---------- # |@RID |objectId ----+-----+---------- 0 |#-2:1|6LTMvSXfM2 ----+-----+---------- 1 item(s) found. Query executed in 0.002 sec(s). 但

作为测试,我正在运行查询

orientdb {pumpup}> select objectId from post where objectId="6LTMvSXfM2"

----+-----+----------
#   |@RID |objectId
----+-----+----------
0   |#-2:1|6LTMvSXfM2
----+-----+----------

1 item(s) found. Query executed in 0.002 sec(s).
但当它没有被引用时,它就失败了,而且速度很慢

orientdb {pumpup}> select objectId from post where objectId=6LTMvSXfM2


0 item(s) found. Query executed in 59.216 sec(s).
我的问题是,如何将查询结果包装为字符串,以便像这样包装字符串

select from post where objectId=(select objectId from post where objectId="6LTMvSXfM2")

将子查询的结果转换为字符串格式的正确方法是什么?

子查询应该返回结果集,而不是单个值,因此不能将其转换为字符串

要获得预期的结果,应使用in运算符,而不是=:

在objectId=6LTMvSXfM2的post中从objectId所在的post中选择objectId

在这种情况下,父查询中作为字符串的objectId将与子查询返回的每个记录(已经是字符串)的objectId相匹配


无论如何,这个查询实际上没有意义;-您正在执行一个不需要它的子查询

我认为它应该会很快失败,并出现一个没有引号的语法错误。它不会失败,因为6LTMvSXfM2可能是一个字段的名称。OrientDB也可以在无模式模式下工作。我不理解子查询的含义。在ETL之前迁移数据时,我会收到一个通知,告知人们何时喜欢帖子。通知包含类似的objectId,而类似的包含帖子的objectId。我需要从通知中获取Post,因此我确实从Post中选择objectId=select Post.objectId,比如objectId=6LTMvSXfM2,从那里我可以获取@rid。但是如果无法将子查询的结果包装为字符串,则它总是失败。