鍍金池/ 問答/ 數(shù)據(jù)庫問答
冷眸 回答

為什么要用16進(jìn)制呢,整數(shù)類型肯定是最適合用作主鍵的,還可以設(shè)為自增;
千萬別用varchar類型的主鍵,insert和一些select會變慢。

心癌 回答

1首先重EXCEL表的機(jī)構(gòu)分析,假設(shè)省市縣excel區(qū)域為A B C
那么 A2-A(n)的就是表示省級內(nèi)容 以此類推

2.通過你js分析是三級數(shù)據(jù),一般就要循環(huán)三次才能啦到數(shù)據(jù)
所以
$i = 2; //因為數(shù)據(jù)從第二行開始
foreach($arr as $p) {

$pmsg = $p['name']; //這是省的名稱
foreach($p['cityList'] as $c) {
    $cmsg = $c['name'];
    foreach($c['areaList'] as $a) {
        $amsg = $a;
        //假如是有phpexcel;
        那樣就是設(shè)置$i行的A數(shù)據(jù)等于$pmsg
        那樣就是設(shè)置$i行的B數(shù)據(jù)等于$cmsg
        那樣就是設(shè)置$i行的C數(shù)據(jù)等于$amsg
        
        跟著i累加,意思是換行
        $i++;
    } 
}

}

空白格 回答

你還有一個最關(guān)鍵的問題:
<a href="aa.bb.com">cc.dd.com</a>你準(zhǔn)備咋去替換?

得具體需求具體分析。

逗婦乳 回答

是不是你設(shè)置了默認(rèn)最多顯示多少條?單獨(dú)查詢過那些數(shù)據(jù)是否存在了嗎?

薄荷綠 回答

你理解的左連接是錯誤的,左連接是會匹配所有滿足條件的數(shù)據(jù),如果 trd_goods 中有記錄在 trd_goods_tag_relation 匹配不到數(shù)據(jù)還是會產(chǎn)生一條記錄,只不過查詢中 trd_goods_tag_relation 中的字段是 null, 這就是以左邊的表為主。

中文支持在最頂部引入試一下

骨殘心 回答

not null的字段在插入數(shù)據(jù)的時候必須提供值。

病癮 回答

朋友,你的問題解決了嗎,我也遇到了同樣的問題

厭遇 回答

.orderByRaw('RAND()')

就可以

吢涼 回答

我一般是封裝成一個多參數(shù)的函數(shù), 如果參數(shù)為空字符串或者為-1就表示沒有此查詢條件

from sqlalchemy.sql import and_, or_
# 多條件查詢
def get_safety_list(offset, limit, con_date1, con_date2, con_invite, con_name, con_plan, salesman, con_pay):
    try:
        condition = (Safety.id > 0)

        if con_date1 > 0:
            condition = and_(condition, Safety.date >= con_date1)
            condition = and_(condition, Safety.date <= con_date2)

        if con_invite != "":
            condition = and_(condition, Safety.invite.ilike('%' + con_invite + '%'))
        if con_name != "":
            condition = and_(condition,
                             or_(Safety.name.ilike('%' + con_name + '%'), Safety.phone.ilike('%' + con_name + '%')))
        if con_plan != -1:
            condition = and_(condition, Safety.safety_plan == con_plan)

        if len(salesman) > 0:
            condition = and_(condition, Safety.invite.in_(salesman))

        if con_pay != -1:
            condition = and_(condition, Safety.origin == con_pay)

        a = Safety.query.filter(condition)
        count = a.count()
        a = a.order_by(Safety.id.desc()).limit(limit).offset(offset).all()
        return a, count
    except Exception as e:
        logging.error("manager.dbhelper.py get_safety_list exception:" + str(e))
    return (), 0
忠妾 回答

今天下午解決了,把那個包刪了,然后在加進(jìn)去,這樣弄了4次,突然就好了,不知道是什么原因

空白格 回答

1、數(shù)據(jù)庫連接通過配置連接池來管理,不用特意去判斷連接是否正常,因為其會自動進(jìn)行重連操作
2、sync同步數(shù)據(jù)庫表結(jié)構(gòu)只需要在開始階段的執(zhí)行一次即可(只要表結(jié)構(gòu)與你的model對應(yīng),其實是不需要sync操作的),這種場景建議使用promise.all(放到app.js里執(zhí)行):

(async () => {
    try {
        await Promise.all([
            User.sync({force: false}),
            Order.sync({force: false}), 
            // ...      
        ]);
    } catch (error) {
        console.log(error);
    }
})();
逗婦乳 回答

16:27 修改

[Student]
| student_id | name | ... |

[Class]
| class_id | ... |

[ClassAndStudent]
| cs_id | class_id | student_id | state | is_close |

[Status]
| cs_id | option | date |

[ClassAndStudent.state] 是每天系統(tǒng)自動根據(jù) [Status.date] 來刷新的:

// cs_id 為空時刷新整張表,不為空時即只刷新指定學(xué)生在指定班級的狀態(tài)
update_date(cs_id) {
    result = cs_id == null ? Status.selectAll().orderBy('date')
                           : Status.selectByCSID(cs_id);
    for (row : result) {
        if (row.date == current_date) {
            switch (row.option) {
                case 'in':
                    ClassAndStudent.selectBy(row.cs_id).setState('就讀');
                    ClassAndStudent.selectBy(row.cs_id).setClassId(new_class_id);
                    break;
                ...
            }
        }
    }
}

然后給 [Status] 表加個觸發(fā)器,或者直接每次前端提交新狀態(tài)時,后端代碼加入:

cs_id = Status.insert({class_id}, {student_id}, 'in', {date});
update_state(cs_id);

這樣 [ClassAndStudent.state] 就是該學(xué)生在該班的實時狀態(tài)了。


原答案:

因為不太清楚你所說的 "混亂" 是指什么,以下僅作討論:

[Student]
| student_id | name | ... | is_close

[Class]
| class_id | student_id | option | date |

option通過 in/out/stop/recover 來表示操作,date保存該操作的時間。
查詢時只需要判斷 [Student.is_close] ,然后對特定student_id的結(jié)果集通過 [Class.date] 按降序排序,即可知道該學(xué)生是否結(jié)課,未結(jié)課的話就能獲取該學(xué)生當(dāng)前所讀的班級以及當(dāng)前狀態(tài)(in/out/stop/recover)。

查詢考勤則是,對于日期早于query_dateoptionstop的,is_close也為假的,即為需要考勤的學(xué)生,此時group by一下就可以按班為單位查詢了。

怣人 回答

在mybatis配置的sql xml文件中,用if標(biāo)簽判斷是否等于0,然后用foreach標(biāo)簽來實現(xiàn)in操作。

何蘇葉 回答

SELECT * FROM table_1 a LEFT JOIN (
SELECT MAX(time)as tt FROM table_1
) b on 1=1
WHERE TIMESTAMPDIFF(MONTH,a.time,b.tt)<3
這樣你看下能行不

拼未來 回答

你好?我最近也在玩laravel想用mycat做讀寫分離可是怎么樣配置連接呢

胭脂淚 回答

values里面多個值的寫法,不是sql標(biāo)準(zhǔn)功能,我知道的只有mysql支持。

乖乖瀦 回答

把build文件里面的utils.js的publicpath:'../../'給屏蔽掉就不報錯了。


function generateLoaders (loader, loaderOptions) {
    const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }

    // Extract CSS when that option is specified
    // (which is the case during production build)
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader',
        //publicpath:'../../',
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }
陪她鬧 回答

已解決,navicat版本問題。升級新版就可以了。