鍍金池/ 問(wèn)答/ 數(shù)據(jù)庫(kù)問(wèn)答
陪妳哭 回答

你obj一直被 getProtoTypeOf的值覆蓋,當(dāng)然每次都不一樣了.

魚梓 回答

圖片描述
這是我的阿里云虛擬主機(jī)和數(shù)據(jù)庫(kù),可以看到他們地址不相同,
然而我用phpstudy時(shí),他的服務(wù)器文件和數(shù)據(jù)庫(kù)文件是在一個(gè)根目錄下的不同文件夾的,
這就讓我和疑惑了。。。

服務(wù)器和數(shù)據(jù)庫(kù)之間存取數(shù)據(jù)相當(dāng)于下面哪種情況?

  • C盤目錄foo目錄bar之間復(fù)制
  • C盤D盤之間復(fù)制
  • 不同電腦之間復(fù)制
心癌 回答

沒(méi)看懂你要啥...?

這是你想要的么?

insert into table001 (id, p_id, name, length)  values
(110,1,'網(wǎng)絡(luò)銷售',10),
(111,1,'區(qū)域銷售',11),
(112,1,'渠道專員',12),
(113,1,'渠道經(jīng)理/總監(jiān)',13),
(114,1,'客戶經(jīng)理/主管',14),
(115,1,'大客戶經(jīng)理',15),
(116,1,'團(tuán)購(gòu)業(yè)務(wù)員/經(jīng)理',16),
(117,1,'會(huì)籍顧問(wèn)',17),
(201,2,'客服專員/助理',18),
(202,2,'客服經(jīng)理/主管',19),
(203,2,'客服總監(jiān)',20);

EDITED

上面的sql是通過(guò)下面的腳本生成的

var arrays = new Array();

var sorts= new Array();
var jobs="銷售 銷售代表 銷售助理 銷售經(jīng)理/主管 銷售總監(jiān) 電話銷售 銷售支持 汽車銷售 醫(yī)藥代表 醫(yī)療器械銷售 網(wǎng)絡(luò)銷售 區(qū)域銷售 渠道專員 渠道經(jīng)理/總監(jiān) 客戶經(jīng)理/主管 大客戶經(jīng)理 團(tuán)購(gòu)業(yè)務(wù)員/經(jīng)理 會(huì)籍顧問(wèn)\n"+
"客服 客服專員/助理 客服經(jīng)理/主管 客服總監(jiān) 售前/售后服務(wù) 電話客服 客戶關(guān)系管理\n"+
"貿(mào)易/采購(gòu) 外貿(mào)專員/助理 外貿(mào)經(jīng)理/主管 采購(gòu)員 采購(gòu)助理 采購(gòu)經(jīng)理/總監(jiān) 報(bào)關(guān)員 商務(wù)專員/經(jīng)理 買手\n"+
"超市/百貨/零售 店員/營(yíng)業(yè)員 收銀員 促銷/導(dǎo)購(gòu)員 理貨員/陳列員 防損員/內(nèi)保 店長(zhǎng)/賣場(chǎng)經(jīng)理 招商經(jīng)理/主管 奢侈品業(yè)務(wù) 品類管理 食品加工/處理 督導(dǎo)\n"+
"市場(chǎng)/媒介/公關(guān) 市場(chǎng)專員/助理 市場(chǎng)經(jīng)理/總監(jiān) 市場(chǎng)拓展 市場(chǎng)調(diào)研 市場(chǎng)策劃 媒介專員/助理 媒介經(jīng)理/主管 會(huì)務(wù)會(huì)展專員/經(jīng)理 品牌專員/經(jīng)理 公關(guān)專員/助理 公關(guān)經(jīng)理/主管 企劃經(jīng)理/主管\n"+
"廣告/會(huì)展/咨詢 廣告文案 創(chuàng)意指導(dǎo)/總監(jiān) 廣告設(shè)計(jì)/制作 廣告創(chuàng)意 媒介策劃/管理 會(huì)展策劃/設(shè)計(jì) 婚禮策劃師 咨詢顧問(wèn) 咨詢經(jīng)理/主管 客戶主管/專員 企業(yè)策劃\n"+
"美術(shù)/設(shè)計(jì)/創(chuàng)意 美編/美術(shù)設(shè)計(jì) 服裝設(shè)計(jì) 家具/家居用品設(shè)計(jì) 平面設(shè)計(jì) 美術(shù)指導(dǎo) 店面/陳列/展覽設(shè)計(jì) 工藝/珠寶設(shè)計(jì) 多媒體/動(dòng)畫設(shè)計(jì) 產(chǎn)品/包裝設(shè)計(jì) 裝修裝潢設(shè)計(jì) CAD設(shè)計(jì)/制圖";

var sa = jobs.split("\n");

var k=0;
for(var j=0; j<sa.length; j++){
    names = sa[j].split(" ");
    sorts[j] = new Array(""+(j+1), names[0]);   

    for(var m=0; m<names.length-1;m++)
    arrays[k++] = new Array(""+(j+1),(j+1)*100+(m+1), names[m+1])

}


function makesql(arr){
        
        var a;       
        console.log("insert into table001 (id, p_id, name, length)  values");
        for(var i=0; i<arr.length; i++){//a為index
            item =arr[i];
            var parentid=0;
            var name=item[1];
            var classid=item[0];

            if(item.length == 3){
              parentid= item[0];
              classid=item[1];
              name =item[2];
            } 
            console.log("("+classid+","+parentid+",'"+name+"',"+(i+1)+")"+(i==arr.length-1?";":","));
        }
    
}

//console.log("delete from table001;");

makesql(sorts);
makesql(arrays);

不需要什么開(kāi)發(fā)環(huán)境, 打開(kāi)瀏覽器->按F12打開(kāi)開(kāi)發(fā)者工具-> 切到console ->粘貼->按Enter. SQL就生成了.

當(dāng)然,存成文件用nodejs執(zhí)行更好一些.

孤客 回答

先用sql取出對(duì)應(yīng)列數(shù)據(jù),select market_value,timestamp_day from table_name
取出來(lái)的是個(gè)對(duì)象數(shù)組,然后轉(zhuǎn)成二維數(shù)組就好了

心癌 回答

那是連接查詢的的連接條件啊,怎么能去掉呢?除非你不用連接查詢

尤禮 回答

@RequestMapping(value = "login.do", method = RequestMethod.GET) 你這邊寫要求的是get請(qǐng)求啊

痞性 回答

Linux上用第二種方法報(bào)錯(cuò),還是window上用第一種方法報(bào)錯(cuò)?
不然你怎么知道不統(tǒng)一

呆萌傻 回答

../sqlparser/lib/libmysqlclient.so.18

追加libmysqlclient.so.18這個(gè)文件就好了! 搞了兩天的時(shí)間 終于定位到問(wèn)題了

嘟尛嘴 回答

mysql默認(rèn)語(yǔ)句最大長(zhǎng)度是1m,2000條問(wèn)題不大。但是你可以選擇用熟悉的語(yǔ)言來(lái)拼sql語(yǔ)句,從文件讀userid,這樣支持更多的userid,效率更高

焚音 回答

好吧,最后在node mysql官方的issues中找了很多例子,結(jié)果發(fā)現(xiàn)如果直接用一條語(yǔ)句的話,很多查詢結(jié)果都是返回一個(gè)json或object而不是一個(gè)array,所以我最后的做法是這樣

SELECT
posts.post_id,
posts.post_title,
GROUP_CONCAT(tags.tag_name) as tags
FROM posts
LEFT JOIN tags ON posts.post_id = tags.post_id
GROUP BY posts.post_id
LIMIT 0,10

node _sql

const getLists = async (page) => {
  let _sql = `SELECT
              posts.*,
              GROUP_CONCAT(tags.tag_name) as tags
              FROM posts
              LEFT JOIN tags ON posts.post_id = tags.post_id
              GROUP BY posts.post_id
              LIMIT ${(page - 1) * 10},10`
  return dbquery(_sql)
}

返回的結(jié)果

得到了全部tag并轉(zhuǎn)成了字符串類型
圖片描述

深記你 回答

你必須保持prefix一致,否則沒(méi)法簡(jiǎn)單的反向代理。

如果你期望在nginx通過(guò)/jenkins訪問(wèn)jenkins,那么你后端的jenkins訪問(wèn)路徑必須也是/jenkins。至于這個(gè)prefix怎么改,官方文檔說(shuō)的很清楚,我就不贅述了: https://wiki.jenkins.io/displ...

最后,官方文檔早有nginx反向代理參考: https://wiki.jenkins.io/displ...

她愚我 回答

1.為了安全通常是禁止數(shù)據(jù)庫(kù)服務(wù)端口監(jiān)聽(tīng)在公網(wǎng)的,即使做了認(rèn)證機(jī)制也太危險(xiǎn)了。
2.你本地連不上公網(wǎng)mysql服務(wù)看看mysql是否監(jiān)聽(tīng)在你阿里云服務(wù)器公網(wǎng)ip或者0.0.0.0,如果已經(jīng)監(jiān)聽(tīng)在公網(wǎng),就再看看是否開(kāi)了防火墻,看看阿里云管理平臺(tái)看看是不是你的服務(wù)器有什么網(wǎng)絡(luò)安全策略,導(dǎo)致你從本地連接不了你服務(wù)器公網(wǎng)的3306端口。

情殺 回答

可以用正則轉(zhuǎn)換
如圖, 點(diǎn)擊一下 "使用正則表達(dá)式"
圖片描述

上面輸入([a-z]+)n*替換欄輸入'$1', (包括引號(hào)和空格)
最后一個(gè)(z)的逗號(hào)不好替換, 可以再處理

雅痞 回答

clipboard.png

并不會(huì)變成你說(shuō)的那個(gè)樣子。

爛人 回答

存儲(chǔ)過(guò)程的優(yōu)點(diǎn)主要包括以下幾點(diǎn):

第一點(diǎn),性能提高。這是相對(duì)于不適用存儲(chǔ)過(guò)程來(lái)說(shuō)的,因?yàn)榇鎯?chǔ)過(guò)程在創(chuàng)建的時(shí)候就編譯好了,而后每次調(diào)用都不會(huì)再次編譯,這相對(duì)于傳統(tǒng)的SQL語(yǔ)句中每次調(diào)用都需要編譯的情況來(lái)說(shuō),性能提高了何止一點(diǎn)兩點(diǎn)。

第二點(diǎn),重用性強(qiáng)。存儲(chǔ)過(guò)程使用名字即可使用,也就是傳說(shuō)中的“一次編寫,隨便調(diào)用”。這樣不僅提高了重用性,還減少了出錯(cuò)的幾率,也會(huì)加快開(kāi)發(fā)速度,可以說(shuō)是一件非常好的事情。

第三點(diǎn),減少網(wǎng)絡(luò)流量。這一點(diǎn)對(duì)于小數(shù)據(jù)量的時(shí)候一般體現(xiàn)不出來(lái),那么當(dāng)數(shù)據(jù)量較大的時(shí)候,我們會(huì)發(fā)現(xiàn)由于使用存儲(chǔ)過(guò)程比使用SQL語(yǔ)句會(huì)使用更少的字節(jié)數(shù),因此它會(huì)降低傳輸?shù)臄?shù)據(jù)量。

第四點(diǎn),安全性提高。由于存儲(chǔ)過(guò)程也可以使用權(quán)限控制,而且參數(shù)化的存儲(chǔ)過(guò)程可以防止SQL注入攻擊,也在一定程度上保證了安全性。

第五點(diǎn),靈活性增強(qiáng)。由于存儲(chǔ)過(guò)程可以使用流程控制語(yǔ)句來(lái)編寫,導(dǎo)致它有著很強(qiáng)的靈活性,可以根據(jù)實(shí)際情況來(lái)執(zhí)行不同的SQL語(yǔ)句,而不是只能單純的簡(jiǎn)單的執(zhí)行命令。而且該存儲(chǔ)過(guò)程還可以修改其邏輯而其他部分不用改變,也就是說(shuō),我們的表的結(jié)構(gòu)改變了,我們只需要修改相應(yīng)的存儲(chǔ)過(guò)程即可,我們的Java或者PHP等程序不需要改變。

第六點(diǎn),當(dāng)業(yè)務(wù)復(fù)雜的時(shí)候,存儲(chǔ)過(guò)程會(huì)減少工作量,為什么呢,原因很簡(jiǎn)單,如果我們不適用存儲(chǔ)過(guò)程,那么就會(huì)導(dǎo)致我們先從數(shù)據(jù)庫(kù)中取出來(lái)數(shù)據(jù),然后經(jīng)過(guò)計(jì)算,再放入到數(shù)據(jù)庫(kù)中,這個(gè)開(kāi)銷還是蠻大的,這中間的開(kāi)銷包括我們的Java或者PHP程序連接數(shù)據(jù)庫(kù)獲取結(jié)果集等若干操作,如果我們使用了存儲(chǔ)過(guò)程,那么就沒(méi)有那么多事了,直接在mysql內(nèi)就搞定了。

缺點(diǎn):
第一點(diǎn),工作量加大。這里并不是說(shuō)我們把程序該做的事讓mysql去做不好,而是mysql本身并沒(méi)有很像樣的IDE來(lái)開(kāi)發(fā)我們的存儲(chǔ)過(guò)程,我們很多時(shí)候還是需要手寫,這樣就會(huì)比較麻煩,而且存儲(chǔ)過(guò)程的調(diào)試也是一個(gè)問(wèn)題,沒(méi)有很像樣的調(diào)試工具。

第二點(diǎn),優(yōu)勢(shì)不明顯。運(yùn)行速度上,對(duì)于大多數(shù)的語(yǔ)句緩存來(lái)說(shuō),編譯sql的時(shí)間開(kāi)銷并不是很大,但是執(zhí)行存儲(chǔ)過(guò)程還需要檢查權(quán)限等一些其他開(kāi)銷,所以,對(duì)于很簡(jiǎn)單的sql,存儲(chǔ)過(guò)程并沒(méi)有很大優(yōu)勢(shì)。

第三點(diǎn),贅余功能。對(duì)web程序來(lái)說(shuō),我們連接數(shù)據(jù)庫(kù)的用戶往往就是同一個(gè),不需要太多的安全機(jī)制,所以,對(duì)于安全上的檢測(cè)看上去很好,實(shí)際上優(yōu)點(diǎn)多余。

第四點(diǎn),小型程序完全無(wú)用。對(duì)于小型web應(yīng)用來(lái)說(shuō),它的使用價(jià)值就更小了,反而會(huì)拖累開(kāi)發(fā)進(jìn)度。

第五點(diǎn),對(duì)于運(yùn)維上。當(dāng)我們的程序要更換數(shù)據(jù)庫(kù)的時(shí)候,它的移植性相對(duì)于不適用存儲(chǔ)過(guò)程要復(fù)雜一些,對(duì)于維護(hù)上,由于是在db端,因此比server端的程序更好維護(hù)一些。