where 子句中的多个 PK
Mutiple PK's in where clause
在我的 table 中,我有 (LocID) 这是我的 PK,我试图将它缩小到特定的 4,但是当我 运行 下面的查询时,我只得到一个答案。此查询中需要修复什么?
-- second we find out the name of the locations
select name from location where locid = 524 and 512 and 505 and 506 ;
您打算编写的查询最好用 WHERE IN
:
表示
select name from location where locid = in (524, 512, 505, 506);
您当前查询中实际发生的情况是 RHS 上的 初始值 (524
) 上的 locid
值被解释为字面上的真实。因此,您的查询与此相同:
select name from location where locid = 524 and true and true and true;
这当然是一样的:
select name from location where locid = 524;
也就是说,您只会从匹配 524
.
中获取记录
在我的 table 中,我有 (LocID) 这是我的 PK,我试图将它缩小到特定的 4,但是当我 运行 下面的查询时,我只得到一个答案。此查询中需要修复什么?
-- second we find out the name of the locations
select name from location where locid = 524 and 512 and 505 and 506 ;
您打算编写的查询最好用 WHERE IN
:
select name from location where locid = in (524, 512, 505, 506);
您当前查询中实际发生的情况是 RHS 上的 初始值 (524
) 上的 locid
值被解释为字面上的真实。因此,您的查询与此相同:
select name from location where locid = 524 and true and true and true;
这当然是一样的:
select name from location where locid = 524;
也就是说,您只会从匹配 524
.