本帖最后由 Joe.xu 于 2024-12-16 15:23 编辑
最近发现大家可能都有这样的场景,在前台页面使用了组合复选框或者下拉框得到了类似于1,2,3这样的数据,想在服务端命令中查询对应标签等于1或者2或者3的,
使用了这样的写法,但发现什么数据没有查出来
这是因为in的语法要求把需要查的值一个一个列出来,例如 in ("aa","bb"),
但是直接这样注入得到的效果是in("aa,bb"),所以就芭比Q了
下面分享给大家一波干货,in函数当场下岗
以一个相对复杂的demo为案例,如下图,勾选了将军和国家荣誉之后,想要把同时包含2和4标签的数据查出来,步骤如下
(1)已组合复选框为例,将前端勾选的多个参数传到服务端命令中
(2)使用分割文本为数组插件,将参数转成数组
(3)将需要查询的sql设置变量保存,多写了where 1=1是为了便于后面拼接条件
(4)循环第二步的数组进行拼接sql,因为这里一个人对应着多个标签,所以使用了instr函数,
如果只对应一个标签的话,使用=就可以
(5)执行sql ,并将数据返回到前端页面展示,
效果如下
备注:上面是的例子是即要包含2,4,如果是包含2或者4的话,把 1=1改成1=0 and改成or即可,主要是把拼接SQL的思路分享给大家,具体场景需要大家灵活搬用
多参数匹配查询.fgcc
(204.55 KB, 下载次数: 727)
|