如何在 SurrealDB 中搜索数组元素

问题描述 投票:0回答:3

我正在尝试执行一个查询来评估数组是否包含或包含特定值或一组值。

从表中选择 * WHERE 数据 = ['value_a']

https://surrealdb.com/docs/surrealql/statements/select

我已阅读文档并尝试了几个查询,但我没有找到任何函数或方法来创建此查询。

我阅读了官方文档并根据示例执行了多次查询,但没有任何效果。

https://surrealdb.com/docs/surrealql/statements/select

我的预期行为是:

匹配特定值或一组值,如 SQL 关系数据库中的这些示例。

https://www.w3schools.com/sql/sql_in.asp

surrealdb
3个回答
5
投票

有一个 CONTAINS 运算符: https://surrealdb.com/docs/surrealql/operators#contains

查询应该是这样的:

SELECT * FROM table WHERE data CONTAINS 'value_a'

2
投票

假设您在 SurrealDB 中有这样的记录:

[
    {
        email: '[email protected]',
        firstname: 'Jan',
        id: person:0b3b952c565155fcb0ae9acfedf99315,
        lastname: 'Brand',
        program: [
            'flights',
            'apps'
        ]
    },
    {
        email: '[email protected]',
        firstname: 'Sam',
        id: person:8bc35665018b595b95bd9b2e909ed651,
        lastname: 'pedlar',
        program: [
            'entertainment'
        ]
    }
]

你想选择'program'数组中包含值'apps'的记录,那么你可以使用以下语句:

select * from person where program contains 'apps';

您将得到以下答案:

{
    email: '[email protected]',
    firstname: 'Jan',
    id: person:0b3b952c565155fcb0ae9acfedf99315,
    lastname: 'Brand',
    program: [
        'flights',
        'apps'
    ]
}

0
投票

为什么我的包含不起作用?选择字段与其他表相关。

© www.soinside.com 2019 - 2024. All rights reserved.