我在 MySQL 数据库中有一个表,其中包含商店和日期。我需要检查一下商店当天是否营业。
在按照此方法检查商店是否营业之前: Find next time business is open; mysql hours calculation在检查商店是否营业之前,我需要检查商店是否正在放假。
有一张 table 好吗:
商店 ID |天数
xxx |数字,数字,数字,等等.
应用程序(用 PHP 编写)查询检查 Days 字符串(逗号分隔值字符串)中是否包含 [yday]? 商店 ID 将是商店表中的外键,应用程序将始终提前知道要对哪些商店运行此查询,而不是相反。
到目前为止,我还没有找到计算成本低或优雅的解决方案。这可能是一个非常简单的问题,但解决方案太多,我很难找出不同的性能问题。
编辑 1
还考虑查询的性能影响如下,将 @GordonLinoff 答案视为最佳解决方案:
$ShopId = //a POST or GET
$day = //a POST or GET
$query = mysqli_query($con,"SELECT day FROM table WHERE ShopId = '$ShopId' AND day = $day");
if(mysql_num_rows($query)== 0){
echo "Shop open";
}
else{
echo "Shop closed";
}
mysqli_close($con);
最佳答案
您将有一个表,其中一行代表每个商店和每个假期。所以一行将是:
ShopId Day
xxx number
xxx number
xxx number
然后您可以使用 SQL 轻松检查此表中的包含情况。而且,如果您在 (ShopId, Day)
上有索引,将会非常高效。
关于php - mysql 中多个商店的假期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20763196/