数据库中有这些数据:
+----+------------+---------+
| id | col1 | col2 |
+----+------------+---------+
| 1 | 3 | 2 |
| 2 | 2 | 3 |
| 3 | 4 | 5 |
+----+------------+---------+
我试图做一个查询,这将给我一个行的计数,其中是相同的数字。
我知道其中一个(数字)的价值。
在本例中,相同的数字是2和3(在col1和col2列中)-我试图从数据库2(两行)中获取。我总是有两个号码中的一个——在这个例子中是3号。
是否可以执行此查询?
谢谢你的帮助。
最佳答案
对于您指定的非常狭窄的场景,我将尝试:
select count(*)
from myTable mt1
inner join myTable mt2 on (mt1.col1 = mt2.col2 AND mt2.col1 = mt1.col2)
and mt1.col1 = 3 --here goes the known value
这只适用于您发布的数据。请让我们知道以下场景的计数:
+----+------------+---------+
| id | col1 | col2 |
+----+------------+---------+
| 1 | 3 | 2 |
| 2 | 2 | 3 |
| 3 | 3 | 2 |
| 4 | 3 | 5 |
| 5 | 4 | 5 |
+----+------------+---------+