Python 列值作为SQLAlchemy中的'REGEXP'模式?

Python 列值作为SQLAlchemy中的'REGEXP'模式?,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,在SQLAlchemy中是否可以将列值用作REGEXP模式 我有一张桌子: CREATE TABLE my_table ( id int(11) unsigned NOT NULL AUTO_INCREMENT, column int(200) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 具有两个示例行: INSERT INTO my_table (id, column) VALUES (1, '^S

在SQLAlchemy中是否可以将列值用作
REGEXP
模式

我有一张桌子:

CREATE TABLE my_table (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
column int(200) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
具有两个示例行:

INSERT INTO my_table (id, column)
VALUES
(1, '^S[[:digit:]]{10}$'),
(2, '^M[[:digit:]]{8}$');
在mysql中,您可以做到:

SELECT id FROM my_table WHERE 'S1803020001' REGEXP my_table.column;
+----+
| id |
+----+
|  1 |
+----+
我正在寻找一种在SQLAlchemy中实现这一点的方法

这就是我如何在模型中使用literal
regexp

MyTable.query.filter(MyTable.column.op('regexp')(r'pattern'))
但这次我正在寻找一种方法来交换“pattern”和“MyTable.column”

我知道,由于各种底层数据库后端,可能不支持它,因为并非所有后端都支持非文本
regexp
模式。尽管如此,我还是很好奇这是否以及如何实现。

使用简单的反转操作:

literal('foo').op('regexp')(MyTable.column)

literal('foo').op('regexp')(MyTable.column)
,可能吧。@IljaEverilä谢谢,效果很好!考虑发表一个答案,这样我就可以接受它。