php - MySql 排除具有特定 ID 的结果?

标签 php mysql sql

这是我的SQL语句

            SELECT * FROM schedule
            WHERE teacher_id = '$teacher_id'
            AND event_id <> '$event_id'
            AND seconds_start = '$start_time'
            OR (seconds_start < '$start_time' AND seconds_end > '$start_time')
            OR (seconds_start < '$end_time' AND seconds_end >= '$end_time')

如您所见,我想排除任何具有特定 ID 的结果,但这似乎不起作用,因为...

enter image description here

这不应该像预期的那样表现吗?

最佳答案

你显然不明白Operator Precedence

您很少可以在同一指令中混合使用 ANDOR 运算符,而无需使用括号指定它们的范围。

在括号后正确缩进您的代码也有助于理解您的查询:

    SELECT * FROM schedule
    WHERE teacher_id = '$teacher_id'
      AND event_id <> '$event_id'
      AND ( 
             seconds_start = '$start_time'
         OR (seconds_start < '$start_time' AND seconds_end > '$start_time')
         OR (seconds_start < '$end_time' AND seconds_end >= '$end_time')
        )

关于php - MySql 排除具有特定 ID 的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39407742/

相关文章:

mysql - 从 mysqli_fetch_array 获取错误

c# - .NET 查询生成器组件

php - MySQL 不能可靠地从 mysql_insert_id() 返回主键

PHP 从 MySQL 中选择行,然后使用相似文本将一列与字符串进行比较

mysql - 什么是表前缀?

sql - 使用配置单元获取平均,p50,p95和p99

php - 需要 Mysql 查询从停止和到停止的搜索总线

php - 密码保护文件夹的最佳方式?

php - 在 Codeigniter 中更新用户详细信息

mysql - 授予访问亚马逊 RDS 服务器上的用户