[试图找到在连接到mysql数据库的sqlalchemy查询中实现RLIKE
的方法。
我们的主机名非常复杂,因此,对于我们来说,不能使用LIKE
。我有数十个SQL查询成功使用RLIKE
来查询主机组,这些主机上安装了各种软件包,但不确定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与所需的任何功能一起使用:
op