RT.是有这样的有一个需求是,要求我过滤掉几组数据
第一条:name:zhangsan,age:10
第二条:name:lisi,age:19
数据的条数是动态的根据前端传的数据确定
假设数据库是这样的
我需要将不等与“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)
之前试过了,不能用not in 。比如这里你name not in ( 'zhangsan' ) age not in ( '10' )。他会过滤掉另外一条name : zhangsan,age:19的这一条。后面发现where not (name = zhangsan and age = 19) 这样可以,但是过滤条件是动态的可能会有很多条,就不知道gorm里面可以怎么使用才能达到要求。
用函数把name和age拼接起来,再当做查询条件。
@wxxul0608 业务代码里自己处理啊,gorm里传个拼好的string就行了
感谢各位,昨天解决了。最后是用这种链式拼接的方法结解决的