sql = "select * from table where %s < 2" % (dist(str, shuxing))
使用的是pymySQL
数据库里有一张表叫做table,其中有一个属性列shuxing
dist为一个自己写的函数,对于两个字符串返回一个数字
现在希望该查询语句的where条件可以使用自己写的的dist函数(这一部分使用%s即可实现),但同时其第二个参数为查询语句当前的shuxing的值,请问该如何实现或者说可以实现吗
第二个参数为查询语句当前的shuxing的值,可以直接把shuxing作为参数啊,
意思是 select * from table where dist(str, shuxing)<2 这样?或者你直接去数据库模拟查询一下看有没有什么问题
你说了半天也没说到底要实现什么,不知道要实现什么怎么知道如何实现呢
你以为你放一个编译过不去的sql,别人就能猜到你要干什么吗
sql = "select * from table where '%s' < 2" % (dist(str, shuxing))
%s 加个单引号,可以试一下,
当然最好的方式是 :%s 是占位符,实际的结果是
(dist(str, shuxing)), 实际结果作为参数去执行(执行sql的时候带上这个函数返回结果)
首先感谢大家帮忙啦
貌似确实没法直接实现,所以我想了另外两种办法
首先是用sql语句去实现dist函数的功能
我用的是第二种方法,首先将数据库所有数据查出来作为元组放到Python里,然后逐条进行相关处理,虽然时间空间开销上貌似会大一些,但也只能这样啦