[问题] SQL一个字段里面找复数目标

楼主: MAGICXX (逢甲阿法)   2018-06-01 09:12:22
版友日安
我现在要利用PYQT下去数据库里面捞资料
遇到一个问题
我现在的query大概是这样下去处理
cmd="SELECT * FROM resdb WHERE 水库名称 IN ('{0}')"
.format(
str(self.res_name.text())
)
我给使用者一个textbox输入他要找的水库名称
可是这样会发生一个问题
如果只有输入一个的话 他是可以正常用的
整个cmd会变成
SELECT * FROM resdb WHERE 水库名称 in ('石门水库,西势水库')
这样下去的话 会找不到字段里面有“石门水库,西势水库”这笔资料
因为我的字段里面 石门水库跟西势水库是分开的
请问一下 我该怎么处理 让他在SQL里面可以找复数的目标呢?
感谢!
作者: kobe8112 (小B)   2018-06-01 09:29:00
你需要限定使用者输入的格式,拆开后再合并到SQL查询吧where 水库名称 in ('石门水库','西势水库')
作者: aszx4510 (wind)   2018-06-01 09:41:00
你为什么要把使用者的输入"直接"放到SQL指令中呢~
作者: MOONY135 (谈无欲)   2018-06-01 10:42:00
我觉得这是SQL问题你没有限定输入格式的话 是不可能的https://goo.gl/wjKctn
作者: kobe8112 (小B)   2018-06-01 10:50:00
很多方式,就算用最最简单的字串串接也可以呀例如将输入格式化成list,完整查询指令的字串用prefix + list通通取出来 + postfix

Links booklink

Contact Us: admin [ a t ] ucptt.com