0

如何使用 php 和 mysql 计算日期在表列中出现的次数?

我试图找出一种方法来限制可用于行的日期数量

例如:

1   1   0000-00-00  2   yes     2013-10-06 20:07:17 2013-10-06 20:07:17
2   1   0000-00-00  4   yes 1   2013-10-06 20:19:31 2013-10-06 20:19:31
3   1   2013-10-15  2   yes 1   2013-10-06 20:22:14 2013-10-06 20:22:14
4   1   2013-10-30  3   yes 1   2013-10-06 21:07:28 2013-10-06 21:07:28

如果 2013-10-30 已使用 5 次,我想返回错误。

我正在使用 Laravel 4 并使用模型保存数据

    if (<<<<code goes here???>>>>>){
        return Redirect::to('')->withErrors($full)->withInput();
    }

    $schedule->userID = $user->id;
    $schedule->date = $dateFormat;
    $schedule->block = $input['timeslot'];
    $schedule->status = "1";

    $schedule->save();
4

2 回答 2

1

你想要的sql语句是

SELECT COUNT (id) FROM table WHERE DATE(date_field) = :date

不要使用应该用于计算受影响行数的 rowCount(例如在删除或更新中)

于 2013-10-07T03:30:34.407 回答
1

你也可以这样做:

Schedule::where('timeslot', '=', $date)->count()此外,如果在此处和那里使用该段代码,您可以将其创建为查询范围,以便您可以在任何地方以 Schedule::countForTimeslot($date) 之类的方式调用它,或者作为更复杂查询的一部分在模型。

于 2013-10-07T19:59:55.263 回答