回答

收藏

如何在sqlalchemy基于文字的查询?

技术问答 技术问答 117 人阅读 | 0 人回复 | 2023-09-13

我创建了一个用于创建表达式函数的函数
+ d- G' n1 Z- l) \% [/ \. W$ z' ^" [$ ddef test(operator1,operation,operator二、    return literal_column(operator1).op(operation)(operator2)现在,当我用
  g* T$ T3 b7 a; b$ ctest(1,'=',1)然后就可以了
& X' h  X4 x9 |2 e1 s但是当我通过的时候
" i1 |9 p+ Y, l6 u  C. Itest('abc','=','abc')然后,它给出了错误,即abc不是列。5 s# q* j5 x; s$ g
我试图转换它. m- {- z( y. C% w/ ]
def test(operator1,operation,operator二、    return literal_column(operator1,String).op(operation)(operator2)但这行不通。) K4 d1 P) T$ J
假如我打电话给我
$ G$ c! ?0 k0 x2 W4 m; {test("'abc'",'=','abc')没有办法获得operator1的类型,并在此基础上创建相同内容类型的类型literal_colum?
( o: a* e& h6 P" ~* M                                                               
" b9 t! p* B0 Q    解决方案:                                                               
0 w) w5 X; K) S7 Y. s                                                                任何文本值都可以转化为表达式结构:5 Y* n9 d, q7 e: a+ A# N
from sqlalchemy import literal_column,bindparam# ? = ?,1 will be boundbindparam(1) == bindparam(1)# " 1 = 1",literals rendered inline (no quoting is applied !!)literal_column(str(1)) == literal_column(str(1)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则