【问题标题】:Group 2 AND statement in sqlsql中的第2组AND语句
【发布时间】:2017-05-10 16:19:32
【问题描述】:

我正在尝试在 php 和 mysql 中开发一个消息传递系统,我想使用以下查询检索两个人之间的所有消息:

 $message = mysql_query("SELECT *FROM messages WHERE (sentby=$id AND sentto=$id2)AND (sentby=$id2 AND sentto=$id) ORDER BY time DESC");

此 sql 语句不起作用。我认为这是因为 (sentby=$id2 AND sentto=$id) 和 (sentby=$id AND sentto=$id2) 之间的 AND 语句不是正确的语法。有人可以展示编写此查询的正确方法吗?

谢谢大家,将其更改为 OR 解决了我的问题。最初我将其作为 OR,但由于在此查询之后,我有另一个查询来搜索与用户 ID 关联的用户名,我发现如果我使用 OR,它将给出两个人的用户名。感到困惑和疲倦,我将其更改为 AND 以尝试解决问题。现在我已经解决了我的两个问题。

【问题讨论】:

  • 你想要OR而不是AND这里-(sentby=$id AND sentto=$id2) OR (sentby=$id2 AND sentto=$id)
  • 也只标记您正在使用的数据库。哪一个? MySQL 还是 SQL Server?

标签: php mysql sql-server


【解决方案1】:
WHERE (sentby=$id OR sentby=$id2) AND (sentto=$id2 OR sentto=$id)

这会说 select all where sentby = 任一 ID,并且 sentto 必须 = 任一 ID

$message = mysql_query("SELECT *FROM messages WHERE (sentby=$id OR sentby=$id2) AND (sentto=$id2 OR sentto=$id) ORDER BY time DESC");

【讨论】:

    猜你喜欢
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2021-10-27
    • 1970-01-01
    • 2021-04-02
    • 2013-10-09
    • 2019-08-31
    相关资源
    最近更新 更多