MySQL具有相同id的多个记录

时间:2015-12-23 23:25:41

标签: mysql

我有以下记录

id    userid    number    revokeid
1     1         123       0
2     2         456       0
3     3         789       0

加班,将添加和修改更多记录

id    userid    number    revokeid
1     1         123       1
2     2         456       0
3     3         789       1

如果发生这种情况,我想提取revokeid = 1的记录。非常简单。

id    userid    number    revokeid
1     1         123       1
2     2         456       0
3     3         789       1
4     1         147       0

如您所见,重新添加了用户标识1。我想用revokeid = 1提取记录。但是,在userid 1的情况下,revokeid = 0,不应该提取它。

更多记录

id    userid    number    revokeid
1     1         123       1
2     2         456       0
3     3         789       1
4     1         147       0
5     4         258       0
6     5         369       1
7     5         321       0
8     6         123       0

我现在已经开了一个多星期了。非常感谢任何形式的帮助。

高级感谢你。

3 个答案:

答案 0 :(得分:1)

"提取"可以指这里有两件事之一:

1:您想要选择这些记录:

SELECT * FROM yourtable WHERE revokeid = 1

2:您想要删除这些记录:

DELETE FROM yourtable WHERE revokeid = 1

在这两种情况下,您只需添加WHERE子句并指定revokeid字段应等于1的条件。 For reference - see here

答案 1 :(得分:1)

SELECT * FROM tablename WHERE revokeid=1只获取revokeid为1的行。

DELETE FROM tablename WHERE revokeid=1将删除revokeid为1的行。

如果您想获得特定的用户ID,但只有revokeid为0,您可以使用SELECT * FROM tablename WHERE userid=1 AND revokeid=0

很难确切地说出你的问题是什么意思。

答案 2 :(得分:0)

也许你想要这样的东西:

SELECT * FROM testtable WHERE revokeid=1 AND userid NOT IN (SELECT userid FROM testtable WHERE revokeid=0);

SELECT userid FROM testtable WHERE revokeid=0获取所有具有未撤销帐户的用户ID。然后在第一个查询中排除这些用户ID。

结果然后包含已撤销= 1的所有条目,不包括那些userid具有被撤销的id = 0的条目。