我想用php/mysqli比较表中两行之间的所有列,但就是不知道该怎么做。我的桌子看起来像:

+----------+----------+----------+----------+----------+--------------+
| username | compare1 | compare2 | compare3 | compare4 | compare5 etc |
+----------+----------+----------+----------+----------+--------------+
| Adam     |        1 |        0 |        1 |        1 |            0 |
| Billy    |        1 |        1 |        1 |        1 |            0 |
| Charlie  |        1 |        0 |        0 |        1 |            1 |
+----------+----------+----------+----------+----------+--------------+

我想选择用户名Charlie作为子项,用户名Adam作为父项,然后比较表中所有其他列(有很多列)的值。如果任何子值为0(父值为1),则查询返回false,否则返回true。
提前谢谢!

最佳答案

你可以:

select (count(*) = 0) as flag
from t tp join
     t tc
     on tp.username = 'Adam' and tc.username = 'Charlie'
where (0, 1) in ( (tp.compare1, tc.compare1), (tp.compare2, tc.compare2),
                  . . .
                );

注意:这假设每个username只有一行。

关于php - 比较同一表中2行之间的所有列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49956294/

10-14 11:16