【问题标题】:MYSQL, Take value from 'reported users' table and use name to delete from another tableMYSQL,从“报告的用户”表中获取值并使用名称从另一个表中删除
【发布时间】:2013-07-13 07:15:57
【问题描述】:

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

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

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

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

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

我希望这是有道理的!

谢谢

【问题讨论】:

  • 你可以试试 case 构造。
  • 你有性别隔离的桌子?真的有必要吗?

标签: mysql sql phpmyadmin


【解决方案1】:

您可以将多表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 表?为什么不使用包含用户性别列的单个表?

【讨论】:

    【解决方案2】:

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

    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'
    );
    

    【讨论】:

      【解决方案3】:

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

      'DELETE FROM $gender_of_table WHERE username = $username'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多