2013-06-24 24 views
-1

由於我在數據庫中進行了一些迭代插入操作,我遇到了一些性能問題。在MySQL中對日期進行迭代INSERT

這是一個訂票網站,每個客戶可以設置其樓價全年的每一天,通過時間跨度。

此刻,我在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設定價格,我需要以下列格式的DATAS:

dispo_full_date =>日期格式爲dd /月/年 dispo_day =>從天日期格式DD dispo_month =>從格式毫米之日起一個月,從格式YYYY日期 dispo_year =>今年, dispo_price =>價格,只是一個INT

有沒有辦法做到這一點與只是SQL?特別是由於天在一個月的數字是每月不同,甚至取決於今年二月...

回答

0

改變你的表有DATETIME dispo_start_dateDATETIME dispo_end_date,然後使用SELECT BETWEEN

只是不存儲每一天,並使用DATETIME)字段(與索引)。

這應該是這樣更快。

+0

的事情是,我需要在我因此說與slowlyness –

+0

的問題,我的意思是,你可以通過表中的數據較少持有相同信息量的格式的數據,應該使它的方式更快。你不需要日,月,年+ full_date – DanFromGermany