php - MySQL大于日期返回小于给定日期的日期

标签 php mysql sql

当我使用 NOW()、CURDATE() 和 php date('Y-m-d', strtotime('now')) 时,MySQL 给我一个日期小于今天的日期的问题。下面是我的查询和结果

SELECT j.*
       ,j.id AS job_id
       ,c.company_name
       ,images.*
    FROM jobs j
       ,companies c
       ,images images
    WHERE j.user_id = c.user_id
        AND images.user_id = j.user_id
        AND j.description LIKE '%php%'
        OR j.title LIKE '%php%'
        AND j.start_date <= '2014-03-19'
        AND j.end_date > '2014-03-19'
        AND j.published = 1
    GROUP BY j.id ASC
    ORDER BY j.featured DESC

结果

start_date: 2013-12-08     end_date:  2014-01-08

是否有理由返回此结果?

最佳答案

您可能需要将查询的OR 相关部分更改为...

AND (j.description LIKE '%php%'  OR  j.title LIKE '%php%')

看,OR优先级低于AND(同理+运算符的优先级低于*一)。所以它基本上将整个条件集分成两部分,如果这些部分任何通过检查,则整个条件通过检查。

关于php - MySQL大于日期返回小于给定日期的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515788/

相关文章:

SQL Server 子查询语法

php - 使用 LIKE 子句加速 MySQL 内连接

php - 从 php 向 Android 应用程序发送推送通知

javascript - 如何动态创建一个新的div?

mysql - 最多可以有两个值的属性的列命名

mysql - Drupal Cache_clear_all错误

mysql - 在下面的查询中输入 Null 作为 0

php - 是否可以从表单生成器设计 html

php - Memcache 使用 php 进行优化

php - Laravel 如何使用查询生成器从 created_at(时间戳)转换为日期?