-1

由于我在数据库中执行的一些迭代插入,我遇到了一些性能问题。

这是一个预订网站,每个客户都可以在其中按时间跨度设置一年中每一天的公寓价格。

目前,我在 PHP 中循环从 start_date 到 end_date 并相应地设置价格,但长时间这样做需要很长时间。

由于每个时期的价格都是相同的,我想知道 MySQL 是否有办法做到这一点,而无需通过带有多个插入的繁重 PHP 循环,而是用一个查询来做到这一点。

CREATE table disponibility (
    dispo_id INT PRIMARY KEY,
    dispo_full_date varchar(10),
    dispo_day varchar(2),
    dispo_month varchar(2),
    dispo_year varchar(4),
    dispo_price INT
)

所以用户从 date_from 和 date_to 设置价格,我需要以下格式的数据:

dispo_full_date => 日期格式 dd/mm/yyyy dispo_day => 日期格式 dd dispo_month => 日期格式 mm, dispo_year => 日期格式 yyyy, dispo_price => 价格,只是一个INT

有没有办法只用 SQL 做到这一点?特别是因为每个月的天数不同,甚至取决于 2 月的年份......

4

1 回答 1

0

将您的表更改为拥有DATETIME dispo_start_dateand DATETIME dispo_end_date,然后使用SELECT BETWEEN.

只是不要存储每一天并使用DATE( TIME) 字段(带索引)。

那应该快得多。

于 2013-06-24T07:37:28.663 回答