gpt4 book ai didi

python - SQLAlchemy 是否支持 mysql 中的 RLIKE?

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:07 25 4
gpt4 key购买 nike

试图找到一种在连接到 mysql 数据库的 sqlalchemy 查询中实现 RLIKE 的方法。

我们的主机名非常复杂,因此,使用 LIKE 不是我们的选择。我有几十个成功使用 RLIKE 查询安装了各种包的主机组的 SQL 查询,但不确定 sqlalchemy 如何/是否支持它。

我的纯 SQL where 子句如下所示:

(device RLIKE '^ab-.*-ceaa-b[0-9]{2}$' and package = 'package-rpm')
OR
(device RLIKE '^ab-.*-cezz-b[0-9]{2}$' and package = 'other-package-rpm')

我是 python 的初学者并且正在取得一些进步,但是我需要在我的脚本中实现 RLIKE 或类似的东西:

conditions = []
conditions.append(and_(Package.device.like('ab-pp-%'), Package.package == 'package-rpm'))
conditions.append(and_(Package.device.like('ab-zz-%'), Package.package == 'package-rpm'))

Package.query.filter(or_(*conditions)).all()

最佳答案

您可以通过使用 op 将 SQLAlchemy 与您想要的任何函数一起使用方法:

conditions.append(and_(Package.device.op('rlike')('^ab-.*-ceaa-b[0-9]{2}$')), Package.package == 'package-rpm'))

关于python - SQLAlchemy 是否支持 mysql 中的 RLIKE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58918059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com