鍍金池/ 問答/ 數(shù)據(jù)庫(kù)問答
絯孑氣 回答

DataTable的分頁(yè)不錯(cuò),可以看一下官網(wǎng)配置一下參數(shù)就可以了。

夕顏 回答

DISTINCT 針對(duì)的是select 后面的所有字段, 如果你想keyword不重復(fù),但對(duì)query_date不care, 你可以只取keyword, 如果你想取keywork和相應(yīng)的最大日期的query_date,可以用group by... having ....

如:

drop table t_query_keyword;
create table t_query_keyword(
    user_id varchar(38) ,
    keyword varchar(100),
    query_date date
);


insert into t_query_keyword (user_id, keyword, query_date)
values ('748761E1-260F-4E61-9D0D-BE6D122560E2', 'java',  '2018-01-01'),
('748761E1-260F-4E61-9D0D-BE6D122560E2', 'sql',  '2018-01-02'),
('748761E1-260F-4E61-9D0D-BE6D122560E2', 'sql',  '2018-01-03'),
('748761E1-260F-4E61-9D0D-BE6D122560E2', 'sql',  '2018-01-03'),
('748761E1-260F-4E61-9D0D-BE6D122560E2', 'js',  '2018-01-04'),
('748761E1-260F-4E61-9D0D-BE6D122560E2', 'html',  '2018-01-05'),
('748761E1-260F-4E61-9D0D-BE6D122560E5', 'docker',  '2018-01-06'),
('748761E1-260F-4E61-9D0D-BE6D122560E2', 'kvm',  '2018-01-07');

SELECT DISTINCT
  t.keyword,
  t.query_date
FROM t_query_keyword t
WHERE t.user_id = '748761E1-260F-4E61-9D0D-BE6D122560E2'
ORDER BY t.query_date DESC
LIMIT 6;

返回的結(jié)果是:

+---------+------------+
| keyword | query_date |
+---------+------------+
| kvm     | 2018-01-07 |
| html    | 2018-01-05 |
| js      | 2018-01-04 |
| sql     | 2018-01-03 |
| sql     | 2018-01-02 |
| java    | 2018-01-01 |
+---------+------------+
6 rows in set (0.00 sec)

keyword=sql, query_date=2018-01-03有兩條,但因?yàn)镈ISTINCT, 只返回其中一條。

或者用如下的sql, 可以保證keyword不重復(fù)。

SELECT 
  keyword, max(query_date) as query_date
FROM t_query_keyword
WHERE user_id = '748761E1-260F-4E61-9D0D-BE6D122560E2'
group by keyword
ORDER BY query_date DESC
LIMIT 5;

返回的結(jié)果是

+---------+------------+
| keyword | query_date |
+---------+------------+
| kvm     | 2018-01-07 |
| html    | 2018-01-05 |
| js      | 2018-01-04 |
| sql     | 2018-01-03 |
| java    | 2018-01-01 |
+---------+------------+
5 rows in set (0.00 sec)


有你在 回答
EXPLAIN select * from A 
left join B on A.aid=B.aid
where A.aid=100;

EXPLAIN select * from (
    select * from A where A.aid=100
) AA
left join B on AA.aid=B.aid

看看兩個(gè)語(yǔ)句的執(zhí)行計(jì)劃。

舊城人 回答

你先將獲得的數(shù)組來(lái) array_count_values(),知道哪些是重復(fù)值的,然后 quan 和 price 相乘變成 $subtotal_price ,最后在丟到 order_record

下墜 回答
  1. flask監(jiān)聽一個(gè)http接口,如/api/spider/start?token=xxx
  2. 接口里面驗(yàn)證下token(主要是安全),然后啟動(dòng)爬蟲邏輯
貓館 回答

redis基于內(nèi)存,所以夠快,因?yàn)閟ession的數(shù)據(jù)量不大,訪問又相當(dāng)頻繁,所以推薦使用redis,反之如果是數(shù)據(jù)量非常大,則可以考慮mongodb

淺淺 回答

Centos是紅帽操作系統(tǒng)的開源分支。安裝RHEL 7 Linux 64-bit x64這個(gè)版本即可。

嫑吢丕 回答
  1. 環(huán)境變量問題,可以先source一下
  2. 命令行使用絕對(duì)路徑
薔薇花 回答

如果是輕量級(jí)服務(wù)器的話,應(yīng)該只需要在防火墻 放行 3306端口 即可,但你的服務(wù)器必須安裝mysql了。
注意,一般默認(rèn)的是沒有安裝mysql的。

柒喵 回答

樓上的老兄其實(shí)是可以的做的,
那么如果非得用數(shù)據(jù)庫(kù)語(yǔ)句實(shí)現(xiàn),也不難,合理使用CASE+AS 也是可行的

SELECT 
    CASE
      WHEN name = 1 THEN '語(yǔ)文'
      WHEN name = 2 THEN '數(shù)學(xué)'
      WHEN name = 3 THEN '英語(yǔ)'
    END AS '學(xué)科',
    score AS '成績(jī)'
FROM person

clipboard.png

乖乖噠 回答

你想用短鏈接是為了解決什么問題?

涼汐 回答

mongo 不允許更新文檔的 _id 字段. 在做更新操作前, 把變量 update 中的 _id 字段去掉就可以了.

深記你 回答

1、d和m2表在SELECT的字段清單中和WHERE的過(guò)濾條件中未使用,是否能取消關(guān)聯(lián)?
2、盡早使用LIMIT條件,建議把表m和表s先關(guān)聯(lián)查詢(有LIMT條件),然后再關(guān)聯(lián)其他表,如:

SELECT *
FROM (
    SELECT *
    FROM     es_members AS m
        LEFT JOIN es_sign AS s ON s.uid = m.uid
    LIMIT 0, 10
) ms 
    LEFT JOIN es_member AS m2 ON m2.uid = s.resp_id
    LEFT JOIN es_dynamic_reflection AS d ON m.uid = d.uid
拽很帥 回答

原因:沒有選擇數(shù)據(jù)庫(kù)
解決方案:
1.命令行下使用:select dbname;
2.代碼中要配置好項(xiàng)目使用的數(shù)據(jù)庫(kù);

下墜 回答

就業(yè)前景:
學(xué)python的話北上廣深就業(yè)還可以吧,工資不低。但隨便打開一個(gè)網(wǎng)站就可以發(fā)現(xiàn),python仍不及php或java。但前景是光明的...HHH...
國(guó)內(nèi)機(jī)會(huì):
如果想學(xué)python的話一定要給自己選好方向,每一種語(yǔ)言都有自己的優(yōu)勢(shì),python也不例外,但這種優(yōu)勢(shì)能否被體現(xiàn),是大環(huán)境決定的,國(guó)內(nèi)目前用python做主要開發(fā)語(yǔ)言的大廠真心不多....,運(yùn)維對(duì)python的需求量大一點(diǎn)。
就業(yè)方向:
運(yùn)維,數(shù)據(jù)分析,爬蟲工程師,web全棧工程師(個(gè)人認(rèn)為pythonweb要做就做全棧,哈哈哈)
以及...目前比較火的IP:“人工智能”

最后,未來(lái)的道路是一個(gè)人的給自己的定位問題,如果你只想做個(gè)互聯(lián)網(wǎng)搬磚工,學(xué)什么都無(wú)所謂。一名真正的開發(fā)者,是不會(huì)被語(yǔ)言所限制的,只要大膽的創(chuàng)造就好,遇到問題,就去找最合適的工具。

爆扎 回答

mongo 的 cursor.count() 方法在默認(rèn)情況下, 會(huì)忽略 cursor.skip()cursor.limit() 的效果, 而直接返回 find() 方法的匹配結(jié)果. 如果需要其考慮 limit, 則需要指定 applySkipLimit 參數(shù)為 true.
在 pymongo 中, 這個(gè)參數(shù)對(duì)應(yīng)方法中的 with_limit_and_skip 參數(shù). 懶得翻文檔了, 以下是直接從 pymongo - cursor.py 源碼中摘出來(lái)的函數(shù)定義:

def count(self, with_limit_and_skip=False):

具體到你的問題, 這么寫就可以了:

recode1 = table_out.find({}).sort([("_id",1)]).limit(10000)
print('總數(shù):', recode1.count(with_limit_and_skip=True))

參考: mongo 官方文檔: cursor.count() :

applySkipLimit: boolean
Optional. Specifies whether to consider the effects of the cursor.skip() and cursor.limit() methods in the count. By default, the count() method ignores the effects of the cursor.skip() and cursor.limit(). Set applySkipLimit to true to consider the effect of these methods.
伴謊 回答

postgre, 一對(duì)多用數(shù)組

WITH C AS (SELECT 商品ID,ARRAY_AGG(標(biāo)簽) AS 標(biāo)簽 FROM B GROUP BY 商品ID)
SELECT A.*, 標(biāo)簽 FROM A LEFT JOIN C USING(商品ID) WHERE 你的條件
痞性 回答

mongodb在4.0(?好像是這個(gè)版本)以后,需要在登陸選項(xiàng)加上

mongoose.connect('mongodb://root:123456@1,2,3,4:66',{ useNewUrlParser: true });

還有個(gè)問題,現(xiàn)在mongodb在驗(yàn)證身份的時(shí)候需要指定你驗(yàn)證的這個(gè)用戶所在的數(shù)據(jù)庫(kù),一般為admin

mongoose.connect('mongodb://root:123456@1,2,3,4:66/admin',{ useNewUrlParser: true });

還有個(gè)問題,如果是阿里云的話,需要打開27017端口,否則也打不開,在阿里云的控制臺(tái)打開,那個(gè)什么進(jìn)出規(guī)則

黑與白 回答

不建議直接使用sql處理,可以先從數(shù)據(jù)庫(kù)查出來(lái),然后在應(yīng)用程序中使用正則表達(dá)式搜索處理。