RT.是有这样的有一个需求是,要求我过滤掉几组数据
第一条:name:zhangsan,age:10
第二条:name:lisi,age:19
数据的条数是动态的根据前端传的数据确定
假设数据库是这样的
![WX20231220-155434@2x.png](https://static.golangjob.cn/231220/68f132d0da02050349ecddff99cb0b83.png)
我需要将不等与“name:zhangsan,age:10和name:lisi,age:19”的数据给找出来。
自己写的时候发现不能用where name != zhangsan and age!= 19这种,系统会先过滤掉所有name等于zhangsan的数据再过滤所有age等于19的,但是这样就会把id = 4的那条数据也过滤掉。后面发现可以用where not (name != zhangsan and age!= 19)这种,也就是通过.Not()方法实现,但是条件会有多条。
查询语句也不能放在循环里面,要求不使用from子查询实。我原本想通过map存储多组条件来实现,但是没有成功。现在想请教一下各位怎么通过gorm实现这种过滤查询呢?万分感谢各位!
用in应该可以叭, where name not in ('111','222') and age not in (19 , 10)
#1
更多评论
之前试过了,不能用not in 。比如这里你name not in ( 'zhangsan' ) age not in ( '10' )。他会过滤掉另外一条name : zhangsan,age:19的这一条。后面发现where not (name = zhangsan and age = 19) 这样可以,但是过滤条件是动态的可能会有很多条,就不知道gorm里面可以怎么使用才能达到要求。
#2