0

我不确定描述这个的最佳方式,

我有一个表格,其中包含我的用户报告的用户名

'Name' 'reason' 'gender' 'date'
 joe     FAKE     male   10/10/2013

性别列告诉我用户名所在的表,在本例中为“male_users”

是否有某种方法/功能可以获取名称列和性别并转到相应的表并删除该用户名,而无需我手动复制名称->更改表->搜索“乔”之类的用户名->删除- > 重新开始

我希望这是有道理的!

谢谢

4

3 回答 3

2

您可以将多表DELETE语法与一些外部连接一起使用,如下所示:

DELETE   m, f
FROM     reported_users r
 LEFT JOIN   male_users m ON m.username = r.Name AND r.gender =   'male'
 LEFT JOIN female_users f ON f.username = r.Name AND r.gender = 'female'

但实际上,为什么要有单独的male_usersfemale_users表格?为什么不使用包含用户性别的列的单个表?

于 2013-07-15T12:25:42.967 回答
1

最好的方法是连续使用两个命令:

DELETE FROM male_users WHERE name IN(
SELECT name FROM users WHERE <logic> AND gender='male'
);
DELETE FROM female_users WHERE name IN(
SELECT name FROM users WHERE <logic> AND gender='female'
);
于 2013-07-15T12:25:36.200 回答
0

最后自己解决了,上面的答案也是正确的,但是我选择创建一个 php 脚本来读取值并在每个条目旁边显示一个按钮,以便我通过一个简单的方法从表中删除

'DELETE FROM $gender_of_table WHERE username = $username'
于 2013-07-15T15:36:14.977 回答