使用append和substring在Orientdb上查询SQL

时间:2016-03-07 15:45:59

标签: orientdb

我需要从包含international_prefix和local_prefix表格的数字中检索国家/地区。

enter image description here

这是我所做的测试,但遗憾的是无法使用。

SELECT *
FROM core_phone_prefix
WHERE (("+393925559000").asString()).left(international_prefix.append(local_prefix).length()) = international_prefix.append(local_prefix)

2 个答案:

答案 0 :(得分:0)

您可以尝试使用此查询

select country from( 
    select number.left(international_prefix.append(local_prefix).length()) as a, international_prefix.append(local_prefix) as b, country from (
        select international_prefix, "+393925559000" as number, country, local_prefix from core_phone_prefix
    )
) where a = b

<强>已更新

您可以在字段 international_prefix (NOTUNIQUE_HASH_INDEX)上插入两个索引,在字段 local_prefix 上插入一个索引(NOTUNIQUE_HASH_INDEX)

您可以使用此查询

select expand($a) from (select "+393925559000" as number from core_phone_prefix limit 1)
    let $a=(select from core_phone_prefix WHERE international_prefix = $parent.current.number.left(international_prefix.length()) 
            and local_prefix = $parent.current.number.subString(international_prefix.length(),international_prefix.append(local_prefix).length())) limit -1

让我知道

答案 1 :(得分:0)

试试这些:

有了这个,我只比较前缀

select distinct(country) as country from(select international_prefix, "+393925559000" as number, country, local_prefix from core_phone_prefix) where international_prefix=number.subString(0,international_prefix.length())

相反,使用这个,我将international_prefix + local_prefix与international_prefix和数字的local_prefix进行比较

select country as country from(select international_prefix, "+393925559000" as number, country, local_prefix from core_phone_prefix) where international_prefix.append(local_prefix)=number.subString(0,international_prefix.append(local_prefix).length())

希望它有所帮助,

让我知道