OrientDB的有效查询语法不返回任何结果(没有错误)

时间:2016-12-18 11:09:03

标签: orientdb

简而言之 - 我想在where子句中搜索具有2个条件的特定类型的顶点。当我分别搜索每个条件时,我得到结果,但当我将它们与"和#34;运算符 - 我没有结果也没有错误。

更多详情:

  • 我使用的是OrientDb 2.2.13。
  • 我有一个名为&#34的顶点类型; EN182"有2个文本字段: " EP11" - 字符串。 " EP12" - 嵌入式字符串列表。
  • 我从这种类型(EN182)向orientDB添加了一条记录,其值为: " EP11" =" 第二文字"。 " EP12" = [" First Text" ," 第二文字" ,"第三文"]
  • 当我跑步时,我得到了我的记录: 选择*来自EN182 EP11 IN ['第四文字','第二文字']
  • 当我跑步时,我得到了我的记录: SELECT * FROM EN182在['第四文字'第二文字'] IN EP12
  • 但是当我使用" AND"运行两个条件的查询时操作者 我没有结果也没有错误: 选择*来自EN182 EP11 IN ['第四个文字','第二个文字'] 和['第四个文字'第二个文字'] IN EP12

(所有类型都没有,只有STRING类型[单一和多重值])

它能做什么? 我可能有语法错误,但它可能是什么?每种情况都可以单独使用或与其他条件一起使用。

P.S。这些字段的索引是:

  • 在EN182上创建索引EN182.EP11(EP11 COLLATE CI)NOTUNIQUE_HASH_INDEX METADATA {ignoreNullValues:false};
  • 在EN182上创建索引EN182.EP12(EP12 COLLATE CI)NOTUNIQUE_HASH_INDEX METADATA {ignoreNullValues:false};

1 个答案:

答案 0 :(得分:1)

好吧我试过你的情况并且工作正常(但是现在我只能用旧版本测试它), IF 你准确地报告你的查询和数据然后你的上一个查询结果是正确的是空的,因为Orient区分大小写并且您插入了一条记录为“EP11”=“ S econd Text”。 “EP12”= [“ F 第一文字”,“ S 第二文字”,“ T 第三文字”] 但是你正在寻找: EP11 IN [' f 正文','第二文字']和[' f 正文'',' s 第二文字'] IN EP12 希望只是你的问题,比你想象的更频繁地发生,欢呼。 顺便说一句我的测试(用工作室创建的索引)

create class EN182 extens V
create property EN182.EP1 string
create property EN182.EP12 EMBEDDEDLIST
insert into EN182 (EP11,EP12) values ("Second Text",["First Text" , "Second Text" , "Third Text"])
SELECT * FROM EN182 WHERE EP11 IN ['forth text','Second Text'] and ["First Text","Second Text"] IN EP12 //return your vertex see the right codition in the filter