第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL中的generate_series()等價物

MySQL中的generate_series()等價物

慕田峪9158850 2019-08-28 10:50:11
MySQL中的generate_series()等價物我需要進行查詢并加入一年中的所有日子,但在我的數(shù)據(jù)庫中沒有日歷表。google-ing后我generate_series()在PostgreSQL中找到了。MySQL有類似的東西嗎?我的實際表格如下:date     qty1-1-11    31-1-11    44-1-11    26-1-11    5但我的查詢必須返回:1-1-11    72-1-11    03-1-11    04-1-11    2and so on ..
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經(jīng)驗 獲得超6個贊

我就是這樣做的。它創(chuàng)建了2011-01-012011-12-31的一系列日期:

select 
    date_format(
        adddate('2011-1-1', @num:=@num+1), 
        '%Y-%m-%d'
    ) datefrom 
    any_table,    
    (select @num:=-1) num
limit 
    365-- use limit 366 for leap years if you're putting this in production

唯一的要求是any_table中的行數(shù)應(yīng)該大于或等于所需范圍的大?。ㄔ诖耸纠?gt; = 365行)。您很可能將其用作整個查詢的子查詢,因此在您的情況下,any_table可以是您在該查詢中使用的表之一。


查看完整回答
反對 回復(fù) 2019-08-28
?
開心每一天1111

TA貢獻1836條經(jīng)驗 獲得超13個贊

@Karolis增強版解決方案確保其適用于任何一年(包括閏年):

從(選擇日期)
    選擇
        日期格式(
        adddate('2011-1-1',@ num:= @ num + 1),
        '%Y-%間 - %d'
    )約會
    從
        any_table,
    (選擇@num:=  -  1)num
    限制
        366)作為dt年(日期)= 2011年


查看完整回答
反對 回復(fù) 2019-08-28
?
慕容3067478

TA貢獻1773條經(jīng)驗 獲得超3個贊

我正在尋找這個解決方案,但沒有“硬編碼”的日期,我想出了一個有效的當年(從這個答案得到幫助)。請注意

where year(date)=2011

因為選擇已經(jīng)過濾了日期,所以不需要。同樣,這樣,使用哪個表(至少如表中所述之前至少有366行)并不重要,因為日期是在運行時“計算”的。

 select date from (
    select
        date_format(
        adddate(MAKEDATE(year(now()),1), @num:=@num+1),
        '%Y-%m-%d'
    ) date    from
        your_table,
    (select @num:=-1) num
    limit        366 ) as dt


查看完整回答
反對 回復(fù) 2019-08-28
  • 3 回答
  • 0 關(guān)注
  • 1777 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號