Select 其中多对 - postgresql
Select where in multiple pairs - postgresql
我想查找与成对列表(多列)匹配的所有行,但我的查询不起作用。如果我只有任一列的列表,但当它们配对时,我会得到结果。
SELECT * FROM table
WHERE (name,age) IN (('john',23),('jane',50),('john',44))
我看到了有关使用 EXISTS 的帖子,但我不知道如何转换此查询。
我检查了我的数据库,它应该 return 8 行,但它 return 是一个空的 table
您应该按照下面的说明使用:
SELECT *
FROM t
WHERE (col1, col2)
IN ( VALUES (val1a, val2a), (val1b, val2b)) ;
您的查询将是:-
SELECT * FROM t
WHERE (name, age) IN ( VALUES ('john',23),('jane',50),('john',44));
I checked my database and it should return 8 rows but it is returning an empty table
您的支票有误。查询正在执行您想要的操作。
一种可能是名称不正确,因为它们有额外的字符——可能是隐藏的。你可以很容易地检查这个。这 return 有什么作用吗?
SELECT *
FROM table
WHERE name = 'john';
如果此 return 没有行,而您认为应该如此,那么您需要找出问题所在。这个条件行得通吗?
WHERE name LIKE '%john%'
问题可能出在名称开头的空格、隐藏字符或相似字符。
如果第一个查询执行 return 行,那么问题可能出在 age
上。这 return 有什么作用吗?
SELECT *
FROM table
WHERE name = 'john' AND age = 23;
age
的问题更微妙,但一种可能性是浮点表示,其中值实际上是 22.9999999997 而不是 23。
我想查找与成对列表(多列)匹配的所有行,但我的查询不起作用。如果我只有任一列的列表,但当它们配对时,我会得到结果。
SELECT * FROM table
WHERE (name,age) IN (('john',23),('jane',50),('john',44))
我看到了有关使用 EXISTS 的帖子,但我不知道如何转换此查询。
我检查了我的数据库,它应该 return 8 行,但它 return 是一个空的 table
您应该按照下面的说明使用:
SELECT *
FROM t
WHERE (col1, col2)
IN ( VALUES (val1a, val2a), (val1b, val2b)) ;
您的查询将是:-
SELECT * FROM t
WHERE (name, age) IN ( VALUES ('john',23),('jane',50),('john',44));
I checked my database and it should return 8 rows but it is returning an empty table
您的支票有误。查询正在执行您想要的操作。
一种可能是名称不正确,因为它们有额外的字符——可能是隐藏的。你可以很容易地检查这个。这 return 有什么作用吗?
SELECT *
FROM table
WHERE name = 'john';
如果此 return 没有行,而您认为应该如此,那么您需要找出问题所在。这个条件行得通吗?
WHERE name LIKE '%john%'
问题可能出在名称开头的空格、隐藏字符或相似字符。
如果第一个查询执行 return 行,那么问题可能出在 age
上。这 return 有什么作用吗?
SELECT *
FROM table
WHERE name = 'john' AND age = 23;
age
的问题更微妙,但一种可能性是浮点表示,其中值实际上是 22.9999999997 而不是 23。