Joe.xu 发表于 2022-5-26 19:08:14

帮你打开活字格更神奇的功能:一百零六,多参数查询,执行Sql命令in函数下岗

本帖最后由 Joe.xu 于 2023-9-18 17:15 编辑

最近发现大家可能都有这样的场景,在前台页面使用了组合复选框或者下拉框得到了类似于1,2,3这样的数据,想在服务端命令中查询对应标签等于1或者2或者3的,
使用了这样的写法,但发现什么数据没有查出来


这是因为in的语法要求把需要查的值一个一个列出来,例如 in ("aa","bb"),
但是直接这样注入得到的效果是in("aa,bb"),所以就芭比Q了


下面分享给大家一波干货,in函数当场下岗


以一个相对复杂的demo为案例,如下图,勾选了将军和国家荣誉之后,想要把同时包含2和4标签的数据查出来,步骤如下


(1)已组合复选框为例,将前端勾选的多个参数传到服务端命令中


(2)使用分割文本为数组插件,将参数转成数组


(3)将需要查询的sql设置变量保存,多写了where1=1是为了便于后面拼接条件

(4)循环第二步的数组进行拼接sql,因为这里一个人对应着多个标签,所以使用了instr函数,
如果只对应一个标签的话,使用=就可以



(5)执行sql ,并将数据返回到前端页面展示,


效果如下
备注:上面是的例子是即要包含2,4,如果是包含2或者4的话,把 1=1改成1=0   and改成or即可,主要是把拼接SQL的思路分享给大家,具体场景需要大家灵活搬用





页: [1]
查看完整版本: 帮你打开活字格更神奇的功能:一百零六,多参数查询,执行Sql命令in函数下岗