1)在你的数据库名为 “reservation_dates” 具有列创建新表。 )在PHP中运行一个脚本,将所有这些日期移动到另一个将其存储为DATE数据类型的表中。
例PHP脚本:
$statement = "SELECT * FROM my_table";
$result = mysqli_query($con, $statement) or die(mysqli_error($con));
while ($row = mysqli_fetch_assoc($result))
{
$dates = explode(",", $row['Reserved']);
foreach($dates as $date)
{
mysqli_query($con, "INSERT INTO reservation_dates (row_id, the_date) VALUES ('".$row['id']."', '$date')") or die(mysqli_error($con));
}
}
运行PHP脚本。现在,您将在名为reservation_dates的关系表中创建所有日期。
下,选择全部落在2017年1月4日,该行的,运行一个查询,如
SELECT customer.* FROM reservation_dates reservation JOIN my_table customer ON customer.id = reservation.row_id WHERE MAX(reservation.the_date) >= '2017-04-01' AND MIN(reservation.the_date) <= '2017-04-01' GROUP BY row_id
我很快就打字,而又没有实际尝试的代码,但是这是一般的方法我会采取。希望能帮助到你!
'“存储在一个字符串的形式,然后在后面的过程解析”' - 好像“在后面的过程”将是当你作出比较呢。你必须比较日期,而不是当他们是字符串。 (将日期存储为日期而不是字符串会使事情变得更容易。) – David
并将每个日期存储在与其相关的表中的自己的行中。正如你可以看到你没有简化,但让你的工作更复杂。 – AbraCadaver
您能否提供示例代码,以便我们能够为您提供帮助? –