表单开发--多选搜索问题

想使用表单开发实现配置下拉框多选查询,但是传递到后端的解析动作是拼接左右like %,求告知为什么是这种处理方式而不是将参数使用IN查询
image.png

img_v3_02nh_3b101535-6e60-4858-948b-df1f5d8139dg.jpg


评论区

超级管理员 2025-06-23 14:17

因为存到数据量里面是逗号隔开的,例如:tag字段存的是:语文,数学,英语,如果使用in的话,是查不出的。如果有更好的方案提供,我们后续会跟进修改
image.png

image.png

maweiyuan 2025-06-23 16:12

@超级管理员

您这种以" , "拼接的数据是在什么位置存储进去的呢? 是否能保证数据的插入和查询顺序呢?


我现在想要实现的多选查询功能是:
下拉框里面的value为数据库真实的数据,通过勾选多个value以数组形式传到后端,后端在SQL中直接IN匹配出来


超级管理员 2025-06-23 16:16

数据插入是通用的插入,前端封装好数据111,222,33 传过来了

超级管理员 2025-06-23 16:16

现在是查出来的结果不正确吗?用like方式

maweiyuan 2025-06-23 16:40

@超级管理员

我想要实现效果
例:订单状态表
id   单号       状态    金额
1    xxxx01    1         99
2    xxxx02    1         883

3   xxxx03     2         998
4   xxxx04     3         7777
状态表:
id   状态
1     已提交
2     已支付
3     已取消
此时订单表状态列关联状态表设置字典项并开启多选(多选仅提供查询使用,新增保证唯一)

是否有功能实现 前端传入 1,2查询出id为1,2,3的数据

超级管理员 2025-06-23 17:05

这样的话,可以在上面你截图的位置,改为in方式是没有问题的,前端传过来的是1,2 转为数组,然后in就可以了,我使用like是为了框架形式可以兼容

最终的效果是:select * from 订单状态表 where 状态 in(1,2)

回复