【问题标题】:DELETE FROM multiple conditions从多个条件中删除
【发布时间】:2011-10-18 06:37:41
【问题描述】:

我在 DELETE MySQL 语句中有两个条件。但它不会删除记录。

$sql="DELETE * FROM sportevent.event_registrations WHERE event_registrations.id = '$id' AND event_registration.eventname = $event";

我的查询有问题吗?如果我只使用一个 WHERE 条件,它就可以工作,但我需要使用两个。

【问题讨论】:

  • 它到底是怎么不工作的?发生错误,不会删除您期望的内容?
  • 根据dev.mysql.com/doc/refman/5.0/en/delete.html,'DELETE * FROM' 中不应该有 *,而应该只是 'DELETE FROM'。
  • 如果查询返回 false,则从 MySQL 检索任何错误。这样您就不必陷入黑暗!
  • 您好,是的,当用户单击“取消”按钮时,会提交查询。但目前它什么也没做
  • 这是不正确的。 * 不属于 DELETE

标签: php mysql sql-delete


【解决方案1】:

我怀疑这个:

event_registration.eventname = $event

应该是

event_registrations.eventname = $event

毕竟,您在“from”子句和“where”的其他部分都使用了复数形式。

另外请注意,只有一个参数被引用 - 我不清楚你是如何提供参数的,但你肯定应该保持一致。

【讨论】:

  • 您好,谢谢,没有看到拼写。它仍然忽略查询。我是否使用了正确的条件运算符?
  • @Sebastian:是的,使用“and”应该没问题,假设这就是你的实际意思。你解决了我提到的引用问题吗?如果您使用相同的参数执行正常的选择查询会发生什么 - 这会返回您想要删除的行吗?
  • 嗨,发布的 $event 似乎是空的,因此没有任何变化。感谢您的精彩回答。
【解决方案2】:

试试这个

$sql="DELETE FROM sportevent event_registrations WHERE event_registrations.id = '$id' AND event_registrations.eventname = $event";

【讨论】:

  • 这是不正确的。 * 不属于 DELETE
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 2013-01-30
  • 2019-10-25
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多