python-select()和table.select()之间的区别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-select()和table.select()之间的区别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1050字,纯文字阅读大概需要2分钟。
内容图文
select和tablename.select()有什么区别?当我将列名传递给table.select像这样:
table.select(table.c.name)
sql就像
select * from tablename where tablename.name
当我通过选择列(实例方法)时:
select([table.c.name])
sql就像
select name from tablename
我想要与select with table.select相同的结果.
当我阅读select文档时,它是相同的,因此是相同的方法,但是为什么它们具有不同的行为?
解决方法:
假设select()表示sqlalchemy.sql.select().
select()函数明确地接受一组列作为参数,其结果是一个独立的Select instance.这在核心教程的Selecting chapter中有详细描述.
另一方面,.select() method on a table采用第一个参数,而不是一组列.换句话说,无论传递给该方法什么,都为选择(而不是要选择的列)形成WHERE过滤器.通过为where子句传递一列,您可以选择所有列,但是要过滤WHERE [columnname].没有太多的过滤器,因为表达式实际上并没有过滤.
换句话说,对table.select()函数的正确使用是传递选择过滤器,并选择所有列:
table.select(table.c.name != None)
它将被编译为:
SELECT * FROM tablename WHERE tablename.name IS NOT NULL;
(尽管在SQLAlchemy 0.8中,至少*扩展为所有表列名称的显式列表).
您应该坚持使用select()函数仅选择特定的列.
内容总结
以上是互联网集市为您收集整理的python-select()和table.select()之间的区别全部内容,希望文章能够帮你解决python-select()和table.select()之间的区别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。