gpt4 book ai didi

java - HQL JAVA - 如何使用多个列表创建组合条件

转载 作者:行者123 更新时间:2023-11-29 02:50:54 24 4
gpt4 key购买 nike

我在 HQL 中遇到了一个不寻常的问题,我还没有找到解决方案 ->

我有一个包含 A、B、C、D 列的表,我想用 B、C、D 的组合列表做一个请求。示例:

表格

 +----------+----------+----------+----------+<br/>
|----PK----|-----B----|-----C----|-----D----|<br/>
+----------+----------+----------+----------+<br/>
|-----1-----|-----2-----|-----3----|-----4----|<br/>
+----------+----------+----------+----------+<br/>
|-----2-----|-----5-----|-----4----|-----7----|<br/>
+----------+----------+----------+----------+<br/>
|-----3-----|-----7-----|-----9----|-----8----|<br/>
+----------+----------+----------+----------+<br/>
|-----4-----|-----6-----|-----4----|-----9----|<br/>
+----------+----------+----------+----------+<br/>
|-----5-----|-----6-----|-----4----|-----7----|<br/>

我有一个 B、C、D 的组合列表,例如:comb1 : 5,4,7 |组合 2:6、4、9。我想检索所有具有这些组合之一的行。在此示例中,我想检索第 2 行和第 4 行。

我试过这个方法:创建 3 个列表 B_List、C_List、D_List 和这个请求:

选择 *来自实体 eWHERE e.B in(:B_List) AND e.c in(:C_List) AND e.d in(:D_List)

但此请求可能会检索不需要的行,例如第 5 行。

我也试过了:

选择 *来自实体 eWHERE (e.b,e.c,e.d) 在 (:B_List,:C_List,:D_List)

但是这个语法在 HQL 中似乎是错误的。有人有想法吗?对不起我的英语>.>

最佳答案

我不知道你是如何制作你的 :B_LIST :C_LIST 和 :D_LIST 的,但我建议你将它们制作成 :BCD_LIST (它们的串联)然后像这样比较它:

Select * FROM entity e 
WHERE concat(e.B,',',e.c,',',e.d) in(:BCD_List)

关于java - HQL JAVA - 如何使用多个列表创建组合条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36014143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com