【发布时间】:2014-05-21 02:33:50
【问题描述】:
假设我有一张桌子chattable
id sender touser message
----------------------------------------------------
1 User1 User2 Hi
2 User2 User1 Hello
3 User3 User1 How r u
4 User1 User3 r u there?
5 User1 User2 Hey
我想做以下事情
1) 获取具有相同值的行数。
例如-我想从chattable 中选择以 User1 作为发送者和 User2 作为 touser 的行数。在本例中,为 2。
我知道为了选择这些行,我应该选择下一行代码 -
SELECT sender, touser FROM chattable WHERE sender=User1, touser=User2;
但是我怎样才能获得包含此信息的行数?
2) 我想了解的另一件事是如何从某一行获取行数据并形成具有相同值的后续行。
意思是,我想用下一个代码——获取row id的最大值——
SELECT sender, touser FROM chattable WHERE sender=User1, touser=User2, id=( SELECT max(id) FROM chattable );
为了获得最大 id 编号,我应该如何更改它 - 在我的示例中,它应该是 row id 5 ,而不是因为它是整个表中的最后一行,只是因为它是 User1 值为的最后一行sender 和 User2 作为 touser。
现在假设我的最大 id 值为 5。
现在假设表中有新行 -
id sender touser message
----------------------------------------------------
6 User3 User2 Hi There
7 User1 User2 Hi There
8 User1 User2 Hello to u 2
9 User3 User1 How r u
现在我想知道是否有具有相同条件的新行 - User1 作为发件人,User2 作为 touser。
假设我正在获取新的最大 id 值 - 现在是 8。
但我不仅想从第 8 行获取信息,还想从第 7 行获取信息。
那么应该是什么 sql 行才能获取大于第 5 行的所有行,但同时满足 User1 作为发送者和 User2 作为 touser 的条件。
希望我已经把我的问题说清楚了 - 感谢您提供任何帮助
【问题讨论】:
-
您能否提供第二个问题所需的结果数据?
-
我想从第 7 行和第 8 行获取所有数据 - 因为假设我已经有了第 1 行和第 5 行数据。我想获取所有数据 - id、发件人、用户和消息
-
我想这样做的一种方法 - 如果让我得到最后一行的 id - 比如说 5 - 所以我通过 5 并告诉它给我 5 到 5 之间的结果最大值 - 但我不知道该怎么做
-
你可以试试 select... from... where sender='User1' and touser='User2' and id > 5
-
呃,为什么mysql 和sql-server 都被列为标签?
标签: php mysql sql sql-server