沒看懂你要啥...?
這是你想要的么?
insert into table001 (id, p_id, name, length) values
(110,1,'網(wǎng)絡銷售',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,'團購業(yè)務員/經(jīng)理',16),
(117,1,'會籍顧問',17),
(201,2,'客服專員/助理',18),
(202,2,'客服經(jīng)理/主管',19),
(203,2,'客服總監(jiān)',20);
EDITED
上面的sql是通過下面的腳本生成的
var arrays = new Array();
var sorts= new Array();
var jobs="銷售 銷售代表 銷售助理 銷售經(jīng)理/主管 銷售總監(jiān) 電話銷售 銷售支持 汽車銷售 醫(yī)藥代表 醫(yī)療器械銷售 網(wǎng)絡銷售 區(qū)域銷售 渠道專員 渠道經(jīng)理/總監(jiān) 客戶經(jīng)理/主管 大客戶經(jīng)理 團購業(yè)務員/經(jīng)理 會籍顧問\n"+
"客服 客服專員/助理 客服經(jīng)理/主管 客服總監(jiān) 售前/售后服務 電話客服 客戶關系管理\n"+
"貿(mào)易/采購 外貿(mào)專員/助理 外貿(mào)經(jīng)理/主管 采購員 采購助理 采購經(jīng)理/總監(jiān) 報關員 商務專員/經(jīng)理 買手\n"+
"超市/百貨/零售 店員/營業(yè)員 收銀員 促銷/導購員 理貨員/陳列員 防損員/內保 店長/賣場經(jīng)理 招商經(jīng)理/主管 奢侈品業(yè)務 品類管理 食品加工/處理 督導\n"+
"市場/媒介/公關 市場專員/助理 市場經(jīng)理/總監(jiān) 市場拓展 市場調研 市場策劃 媒介專員/助理 媒介經(jīng)理/主管 會務會展專員/經(jīng)理 品牌專員/經(jīng)理 公關專員/助理 公關經(jīng)理/主管 企劃經(jīng)理/主管\n"+
"廣告/會展/咨詢 廣告文案 創(chuàng)意指導/總監(jiān) 廣告設計/制作 廣告創(chuàng)意 媒介策劃/管理 會展策劃/設計 婚禮策劃師 咨詢顧問 咨詢經(jīng)理/主管 客戶主管/專員 企業(yè)策劃\n"+
"美術/設計/創(chuàng)意 美編/美術設計 服裝設計 家具/家居用品設計 平面設計 美術指導 店面/陳列/展覽設計 工藝/珠寶設計 多媒體/動畫設計 產(chǎn)品/包裝設計 裝修裝潢設計 CAD設計/制圖";
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);
不需要什么開發(fā)環(huán)境, 打開瀏覽器->按F12打開開發(fā)者工具
-> 切到console
->粘貼->按Enter. SQL就生成了.
當然,存成文件用nodejs執(zhí)行更好一些.
jdbc URL里加上rewriteBatchedStatements=true
這個參數(shù)就可以了。
或者,在程序寫成一條INSERT插入多行數(shù)據(jù)的形式,不用依賴jdbc的batch功能,這樣是最靠譜的,也適合移植到MySQL以外的數(shù)據(jù)庫。
mongorestore是個獨立的可執(zhí)行程序,請不要在進入mongodb的命令行狀態(tài)中執(zhí)行它!
單獨打開一個命令行窗口執(zhí)行你的命令即可。
看你的數(shù)據(jù)庫設置應該是沒有問題的。因為我在使用gorm的時候是開啟了數(shù)據(jù)庫連接池,因此我沒有在一個地方專門對db進行close。我不知道你代碼里面db的生命周期是怎么樣的。建議你在調試環(huán)境中使用db = db.Debug(),可以打印要執(zhí)行的sql語句。此外,還可以在你的代碼中通過err := db.Save(&like).Error, 檢出err查看你程序的執(zhí)行是否有問題.
======補充================
package database
var db *gorm.DB
func init() {
var dbSrc = "username:password.@(127.0.0.1:3309)/gotest?charset=utf8&parseTime=True&loc=Local"
newDb, err := gorm.Open("mysql", dbSrc)
if err != nil {
panic(err)
}
db = newDb
sqlDb := db.DB()
sqlDb.SetMaxOpenConns(100)
sqlDb.SetMaxIdleConns(15)
if gin.IsDebugging() {
db = db.Debug()
}
}
func DB() *gorm.DB {
return db.New()
}
一般情況下我會將數(shù)據(jù)庫的初始化工作放到一個init中,然后在包含main函數(shù)的文件中導入這個包(package),這里就舉個例子:
import _ "database"
這樣在程序啟動的時候, 就會會自動初始化db(而且不用擔心會初始化多次)。然后在需要使用的地方只需要調用
db := database.DB()
這樣可以拿到一個db對象。
1、你的數(shù)據(jù)是什么量級,是MB,GB,PB?
2、你數(shù)據(jù)爬下來的存儲方式,是存在文件里還是還是存放到數(shù)據(jù)庫
3、你準備以什么方式把數(shù)據(jù)開放給對方,提供web api,還是提供ftp,還是提供數(shù)據(jù)庫訪問權限
你思考過這些問題,自然就知道該怎么做和該去研究哪些資料了
//文章的 評論的改一下表就好了
select tb_user.* from tb_article join tb_user on tb_user.id=tb_article.id order by tb_article.create_time desc limit 5;
//一起?效率...就沒怎么考慮233.....
SELECT
a.uid,
username
FROM
(
(
SELECT
`uid`,
`create_time` AS `time`
FROM
tb_article
)
UNION ALL
(
SELECT
`uid`,
`create_time` AS time
FROM
tb_comment
)
) AS a
JOIN tb_userAS b ON a.uid = b.uid
GROUP BY
a.uid
ORDER BY
a.time DESC
LIMIT 5
寫上端口!命令行默認3306,sequel pro并不會給你默認
所以是查詢的sql語句有問題了,你這應該分成兩個查詢:一個查詢最外面的那個while的數(shù)據(jù),一個查詢藍色圖片的while的數(shù)據(jù)
查詢最外層的數(shù)據(jù)是一個List,然后在里面一個字段存圖片的List信息
-- 不懂PHP ,但是意思相通
1、注意看數(shù)字8的表頭key_len,說的是使用索引字段的長度。
2、Using tempory, Using filesort是受order by語句的影響,你可以去掉order by再看一下執(zhí)行計劃。
3、eo表使用覆蓋索引是合理的,因為索引已經(jīng)包含了查詢所需的所有數(shù)據(jù)。
xdebug調一下,單部觀察
事務會話期間能不能看到改動和事務的隔離級別有關.
參見官方文檔:
https://dev.mysql.com/doc/ref...
默認情況下是REPEATABLE READ, 可重復讀,即在事務期間的多次讀取返回同樣的結果.
BTW:
mysql定義的四種隔離級別沒有 repetable commit
這個.
官網(wǎng)上只有
level:
REPEATABLE READ
READ COMMITTED
READ UNCOMMITTED
SERIALIZABLE
我這個是可以的。flask-sqlachemy遷移只能添加字段,不能修改和刪除的??聪履愕膍odels.py中表和數(shù)據(jù)庫表是否一致。
1,本地能ping到這臺主機嗎?
2,本地能telnet通這臺主機的3306端口嗎?
3,把bind-address = 127.0.0.1換成bind-address = 0.0.0.0試試呢?
分層設計
路由和模型之間加一層控制器來處理業(yè)務邏輯
//以文章為例,文章控制器
'use strict';
import ArticleModel from '../../models/article';
class Article {
constructor() {
//...
}
async getArticleById(req, res, next) {
//查找
let article = await ArticleModel.findOne(...);
}
async addArticle(req, res, next) {
//新增
}
// 更新文章需要更新文章評論數(shù)
// 刪除文章
async deleteArticle(req, res, next) {
//刪除
}
// 更新文章
async updateArticle(req, res, next) {
// 更新
//這里可以先查找在更新,多次調用
}
}
export default new Article();
//文章路由
'use strict';
import express from 'express';
import Article from '../controllers/blog/article';
const router = express.Router();
router.get('/article/:id', Article.getArticleById);
router.post('/article/add', Article.addArticle);
router.post('/article/update', Article.updateArticle);
router.post('/article/delete', Article.deleteArticle);
export default router
我之前看到的一個koa+mysql寫的也可以參考下,原理類似
koa-blog
不妨 brew install mongodb, 簡單省事,哈哈哈
或者裝個 docker,docker pull mongodb ,不爽就刪了換個鏡像,簡單省心
然后把 對應端口(默認27017吧)expose 出來,用對應語言的驅動就可以使用了。
直接用的話,命令行 mongod, 再起一個界面運行 mongo 就可以使用了 db.getCollection('xxx').find({}) 等等,自己上網(wǎng)找找就有了
首先,你要確定是你用的MySQL客戶端截斷的,還是MySQL返回時就截斷的?測試方法很簡單:
SELECT LENGTH(GROUP_CONCAT(id)) ...
如果是后者,可以考慮在配置(my.cnf或my.ini)中把group_concat_max_len
設得大些,或者每次連接時執(zhí)行SET SESSION group_concat_max_len = 1000000
。
可以用正則轉換
如圖, 點擊一下 "使用正則表達式"
上面輸入([a-z]+)n*替換欄輸入'$1', (包括引號和空格)
最后一個(z)的逗號不好替換, 可以再處理
SELECT i.* FROM c_item i, c_item_attr ia WHERE i.item_id = ia.item_id AND ia.attr_id IN (4, 7, 14) GROUP BY i.item_id having count(i.item_id)>2
在使用golang進行開發(fā)中,數(shù)據(jù)并發(fā)安全是經(jīng)常要考慮到的因素,開發(fā)框架中并不會處理用戶數(shù)據(jù)的并發(fā)安全。從1.9.2版本開始golang也提供了sync.Map并發(fā)安全的封裝類型,此外也可以參考gf框架的并發(fā)安全容器:http://gf.johng.cn/494392
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。