我想将数据库中的记录提取为:
select * from table where column1 IN (aa, bb , cc...) and column2 IN (34, 55, 66...) and column3 IN(df, fg, hh...);
因此,如果我使用这个查询,它将根据组合为我获取记录,例如,它将给我一个记录,其中column1= aa、column2= 55和column3 = hh。所以这个密码我不想要。
我希望组合为: column1 =aa,column2 =34,column3=df。
仅匹配in语句中的第一个数据,类似地,要检查的语句中每个语句中的第二个数据等等。我不需要其他组合,在in语句中,column1第一数据与column2第二数据匹配,并获取记录。或者其他要使用的操作员。
我的主要目的是在java中使用这个用于JPA的Sql,这样我就可以将arrayList传递给相应的in语句,并以如下方式获取数据:
List<Object> tableList = findByColumn1InAndColumn2InAndColumn3In(arrayList1, arrayList2, arrayList3);
任何建议都会有帮助。谢谢。
发布于 2022-05-13 06:43:41
一种方法是使用OR
select *
from table
where column1 = aa and column2 = 34 and column3 = df
or column1 = bb and column2 = 55 and column3 = fg
or ..
发布于 2022-05-13 06:46:08
您可以用IN (xx,xx,xx)获取第一个条件来匹配,然后使用运算符和
SELECT * FROM DB
WHERE column1 IN (aa, bb, cc) AND column2 = "aa" AND column3 = "bb" -- and so on
https://stackoverflow.com/questions/72231321
复制相似问题