sqlalchemy模糊查询,搜索字段包含数据库通配符的问题

        今天遇到一个问题,sqlite数据库表中一个字段,记录的字符串是带数据库通配符的,例如"%", "_"这种。于是第一步,转译了一波。

    for c in "\\~!@#$%^&*()+{}|\"<>?;\',/,":
        if c in keyword:
            keyword = keyword.replace(c, "\\" + c)
    return keyword

        想着应该是可以了,但是不出意外,出意外了,转译前%代表通配符可以检索到所有内容,转译后彻底凉了,啥都没了...sql如下

sqlite3 --header --column /var/opt/isa/data/db/test.db "select * from tab WHERE tab.name LIKE '/%'"

        面向百度编程了一波得知,得这么写在后面定义声明一个转译符。给like后面拼上。

 

        有了方法开干,但是,我好像tm用的orm...拼个der。

        继续面向百度编程,要说还是得官方文档。这个东西解决了问题。 


 

 

        好!直接复制!

 filters[k] = keywords_conver(filters[k])
 rule.append(col.ilike('%' + filters[k] + '%', escape="\\"))

        可以愉快的搜索转译符了

 

Association Proxy — SQLAlchemy 1.4 Documentation 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值