【问题标题】:How to properly bind pairs (array of tuples, multidimensional array) in SQLAlchemy?如何在 SQLAlchemy 中正确绑定对(元组数组、多维数组)?
【发布时间】:2019-10-08 14:42:16
【问题描述】:

如何构造mysql查询:

SELECT *
FROM table
WHERE (key->>"$.k1", key->>"$.k2") IN ((1, "string1"), (2, "string2"))

使用 SQLAlchemy?

我尝试使用text,但没有成功:

select([table.c.value]).where(
    text('(key->>"$.k1", key->>"$.k2") IN :pairs)').bindparams(
        pairs=[(1, "string1"), (2, "string2")]
    )
)

此代码生成:

SELECT *
FROM table
WHERE (key->>"$.k1", key->>"$.k2") IN NULL

【问题讨论】:

标签: python arrays multidimensional-array sqlalchemy tuples


【解决方案1】:

Ilja Everilä,谢谢!

以下代码有效:

select([table.c.value]).where(
    tuple_(
        text('key->>"$.k1"'),
        text('key->>"$.k2"'),
    ).in_([[1, 'string1'], [2, 'string']])
)

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    相关资源
    最近更新 更多