如果我有这张桌子:
+------+-------+---------------+--------+-----------------+------------+-----------+----------------+------+------+--------+------------+------------+
| type | class | username | userid | userip | usermobile | useremail | daysleft| pin1 | pin2 | pin3 | active | schoolname | schoolsite |
+------+-------+---------------+--------+-----------------+------------+-----------+----------------+------+------+--------+------------+------------+
| B | A | sebbetest | 1000 | 123.123.123.123 | none | none | 50| 0 | 0 | 0 | Y | none | none |
| A | A | stackowerflow | 5355 | 123.123.123.123 | none | none | 50| 0 | 0 | 0 | Y | none | haha |
| C | A | good | 4223 | 123.123.123.124 | none | none | 50| 0 | 0 | 0 | Y | none | haha |
| A | A | tester | 6353 | 123.123.123.125 | none | none | 50| 0 | 0 | 0 | Y | none | haha |
| B | A | admin | 3453 | 123.123.123.125 | none | none | 50| 0 | 0 | 0 | Y | none | eeee |
| A | A | sebastian | 1342 | 123.123.123.126 | none | none | 50| 0 | 0 | 0 | Y | none | eeee |
| C | A | username | 6456 | 123.123.123.125 | none | none | 50| 0 | 0 | 0 | Y | none | woooooow |
+------+-------+---------------+--------+-----------------+------------+-----------+----------------+------+------+--------+------------+------------+
如您所见,IP 为“123.123.123.124”的用户“good”和 IP 为“123.123.123.126”的用户“sebastian”没有“同伴”,同一 IP 上没有其他用户。
用户“sebbetest”有一个伴侣“stackowerflow”。
用户“tester”有 2 个同伴:“admin”和“username”。
现在我想删除这些缺少同伴的用户。我怎样做?出于原子原因和防止并发访问修改数据库,我想在单个 SQL 表达式中删除所有“非伴随”用户。
我尝试过: DELETE FROM WHERE COUNT(userip) = 1;
得到这个:错误1111(HY000):组功能的使用无效
没有行是重复的。如果需要检查一个条目是否是唯一的,而不管 IP,(类型,用户 ID)是唯一的。
换句话说,如果IP在一行中是唯一的,则将其删除。