作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
请问有没有办法使用 SQLAlchemy 在子句中编写查询多列?
这里是实际查询的例子:
SELECT url FROM pages WHERE (url_crc, url) IN ((2752937066, 'http://members.aye.net/~gharris/blog/'), (3799762538, 'http://www.coxandforkum.com/'));
我有一个包含两列主键的表,我希望避免添加一个仅用作索引的键。
PS 我正在使用 mysql 数据库。
更新:此查询将用于批处理 - 因此我需要将数百对放入 in 子句中。使用 IN 子句方法,我希望知道我可以在一个查询中插入多少对的固定限制。就像 Oracle 默认有 1000 个枚举限制。
使用 AND/OR 组合可能会受到查询字符长度的限制。这将是可变的并且更不可预测。
最佳答案
假设您在 Page
中定义了模型,下面是一个使用 tuple_
的示例:
keys = [
(2752937066, 'http://members.aye.net/~gharris/blog/'),
(3799762538, 'http://www.coxandforkum.com/')
]
select([
Page.url
]).select_from(
Page
).where(
tuple_(Page.url_crc, Page.url).in_(keys)
)
或者,使用查询 API:
session.query(Page.url).filter(tuple_(Page.url_crc, Page.url).in_(keys))
关于python - 如何用sqlalchemy在子句中写多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20461887/
我是一名优秀的程序员,十分优秀!