【问题标题】:CakePHP 1.3 Find Condition with CONCAT multiple fields Next one hour recordsCakePHP 1.3 使用 CONCAT 多个字段查找条件下一个小时的记录
【发布时间】:2014-06-28 20:34:27
【问题描述】:

以下是我的查找条件,以获取匹配

$conditions = array(
    "CONCAT(`showdate`,' ',`hours`,':',`minutes`,':00') <" => "DATE_ADD(NOW(), INTERVAL 1 HOUR)",
    "CONCAT(`showdate`,' ',`hours`,':',`minutes`,':00') >=" => "NOW()");

如果在 PHPMyAdmin - SQL 提示符下运行相同的查询,它的工作方式如下:

SELECT * FROM `showtimes` WHERE CONCAT( `showdate` , ' ', `hours` , ':', `minutes` , ':00' ) < DATE_ADD( NOW( ) , INTERVAL 1 HOUR ) AND CONCAT( `showdate` , ' ', `hours` , ':', `minutes` , ':00' ) >= NOW( ) LIMIT 0 , 30

上面的 MySQL 查询运行良好,但是当我使用 CakePHP Find 检查时,它不工作。

以下是相同的组合:

$conditions = array(
    "CONCAT(`showdate`,' ',`hours`,':',`minutes`,':00') <" => "DATE_ADD(NOW(), INTERVAL 1 HOUR)",
    "CONCAT(`showdate`,' ',`hours`,':',`minutes`,':00') >=" => "NOW()",
    );

pr($conditions);
$this->Showtime->recursive = -1;
$areas = $this->Showtime->find('all',
            array(
                    'conditions' => $conditions,
                    'limit' => $limit,
                    'offset' => $offset,
                    'group' => 'Showtime.id',
                )
            );

pr($areas);

任何帮助或想法将不胜感激。

【问题讨论】:

    标签: php mysql sql cakephp-1.3 concat


    【解决方案1】:

    这是条件,我发现对我有用:

    $conditions = array("CONCAT(`hours`,':',`minutes`) <=" => date('H:i', strtotime('+1 hour')), "CONCAT(`hours`,':',`minutes`) >=" => date('H:i'));
    

    希望对社区成员有所帮助!

    欢迎随时提出建议。

    【讨论】:

    • “创造性”解决方案 - 为此您应该在数据库中使用日期函数而不是进行字符串比较
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    相关资源
    最近更新 更多