我有下表
id || foo
-------------
1 || a
2 || b
3 || b
4 || b
5 || c
6 || a
7 || d
給定一個 ID 串列,我如何測驗所有這些記錄是否具有相同的foo值?
例如
在 (2,3,4) 中選擇 id 應該可以通過測驗
在 (2,3) 中選擇 id 應該通過測驗
在 (1,6) 中選擇 id 應該通過測驗
在 (5,6) 中選擇 id 應該無法通過測驗
在 (1,2) 中選擇 id 應該無法通過測驗
(請注意,我沒有立即測驗“foo”值,因此例如使用 (2,3,4) 我不知道要測驗“b”,但沒有什么能阻止我使用第一個id=2 來獲取要測驗的“b”值)
uj5u.com熱心網友回復:
如果該列foo不可為空,您可以使用聚合來完成:
SELECT MIN(foo) = MAX(foo) AS result
FROM tablename
WHERE id IN (?, ?, ....);
或者:
SELECT COUNT(DISTINCT foo) = 1 AS result
FROM tablename
WHERE id IN (?, ?, ....);
兩個查詢都將回傳 1 行和 1 列,并且值1將指示結果集中的所有行(在過濾表之后)在 column 中包含相同的值foo。
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/463257.html
標籤:sql sqlite 选择 where子句 sql-in
上一篇:sqlite中2個左連接的語法
