php - sql中的第2组AND语句

标签 php mysql sql-server

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

 $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 试图解决问题。现在我的两个问题都解决了。

最佳答案

WHERE (sentby=$id OR sentby=$id2) AND (sentto=$id2 OR sentto=$id)

这将表示选择所有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");

关于php - sql中的第2组AND语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43897932/

相关文章:

php - 从多个表中选择,其中 php 变量等于列值

php - htaccess 从 url 中删除 .php 和 .html

php - 如何计算表格中日期的数量

php - 选择多个条件

php - 使用mysql确定流行标签?

php - 从 Laravel 中的数组插入表

mysql - 如何找到mysql中某列中缺失的月份?

java - Spring Data 未更新最新数据

sql - CTE 和子查询之间的区别?

php - 当我创建表时,SQL 不断反射(reflect) getdate 的语法错误