【问题标题】:PDO sql delete with multiple conditions具有多个条件的 PDO sql 删除
【发布时间】:2019-07-30 20:49:35
【问题描述】:

这是我尝试过的:

$query="DELETE FROM network_friend WHERE friend_request = :usrfriend AND friend = :isfriend UNION DELETE FROM network_friend WHERE friend_request = :friend_request AND friend = :friendisfriend";

我有列结构

结构相同,而不是

friend1 friend2 friend1

可能是这样的

friend2 friend1 friend2 

如果列:friend_requestfriend_is_friend 是否是同一个用户,并且 friend 列是我要删除的用户,如何删除案例?

类似"DELETE FROM table WHERE friend = :user1 AND friend_request = :user2 AND friend_is_friend = :user2"

反之亦然

"DELETE FROM table WHERE friend = :user2 AND friend_request = :user1 AND friend_is_friend = :user1"

问题是我需要删除大小写 user1 = friend_requestuser1 friend_is_friend 以及 friend = user2 倒数也可以代替 user 1 user 2user 2 user 1

如何删除多个条件并将其变为单个语句?

【问题讨论】:

标签: php sql pdo


【解决方案1】:

我想你想要:

DELETE nf FROM network_friend nf
    WHERE (friend_request = :usrfriend AND friend = :isfriend) OR
          (friend_request = :friend_request AND friend = :friendisfriend)

【讨论】:

  • 太棒了!谢谢!
  • DELETE nf 是做什么的?
  • @Developer。 . .也就是说要从nf 中删除,这是network_friend 的别名。
  • 我按照你的回答让它起作用了,我应该将 nf 更改为 network_friend 还是让它保持原样?
  • 我觉得没有问题,只是不知道可以把表声明为别名
【解决方案2】:

我觉得是=D

$sql = 'DELETE FROM network_friend WHERE friend_request = friend_is_friend AND friend = :user_you_want_to_delete';

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多