[英]OrientDB: How to update column using select query
我需要使用以下內容更新表中的列:
update Table1 set name = (select productName from Table2 where
@rid=$parent.$current.productid)
查詢工作正常但不是名稱查詢以“[productname]”格式存儲值。
我已閱讀orientdb文檔,我猜選擇查詢以集合格式返回結果。 所以我已經嘗試過以下功能
提前致謝。
我嘗試搜索但沒有得到任何干凈的ans,但我做了以下更改為我工作並完成了工作:)
update Table1 set name=(select productname from Table2 where
@rid=$parent.$current.productid),
name= name.replace("\[","").replace("\]","")
希望這為某人節省時間。
您觀察到此行為,因為子查詢(選擇查詢)始終返回一個集合。 LET塊可以幫助你。 以下是在查詢中使用LET塊的方法;
update Table1 set name = $name[0].productname LET $name = (select productname from Table2 where @rid=$parent.$current.productId)
LET塊對於將多次使用的子查詢,投影和保持結果非常有用。
您可以在此處找到更多信息。
希望這可以幫助。
顯然你的答案(@Omega Silva)不能正常工作。
我在這里有同樣的問題,我還沒有找到一個優雅的解決方案。
我想將Table2的@rid復制到Table1的字段“r1”中,其中Table2.f1 = Table1.f2(f1&f2只是另外兩個字段)。
我想出的唯一解決方案是:
UPDATE Table1 SET r1=(SELECT @rid FROM Table2
WHERE Table2.f1=$parent.$current.f2)
這將返回一個包含整個字段/值列表的字符串。 然后我修剪它如下:
UPDATE Table1 SET r1=r1.substring(6,12)
(僅保留@rid部分)
但在我看來,只需一個查詢就必須有更好/更優雅的解決方案。
有任何想法嗎?
update Table1 set name=(select productname from Table2 where
@rid=$parent.$current.productid),
name= name.replace("[","").replace("]","")
嘗試該方法(hierahical鏈接)
UPDATE test1 SET ttt=(SELECT FROM test1 WHERE id=$parent.$current.parentId),
parent=ttt[0].@rid,ttt=null
它適用於orientdb 2.19
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.