|
|
发表于 2018-12-2 15:39:26
|
显示全部楼层
本帖最后由 wongyusing 于 2018-12-2 15:48 编辑
果然,三句sql语句搞定
- CREATE TABLE doc(id int,filename VARCHAR(20),folderid int,full_folder VARCHAR(500),PRIMARY KEY(id));
- ALTER TABLE doc ADD test_var VARCHAR(100);
- INSERT INTO doc(id, filename,folderid) VALUES(1,'语文.txt', 23);
- INSERT INTO doc(id, filename,folderid) VALUES(2,'数学.pdf', 17);
- INSERT INTO doc(id, filename,folderid) VALUES(3,'英语.xls', 8);
- CREATE TABLE folder(id int,name VARCHAR(40),parent_id int,PRIMARY KEY(id));
- INSERT INTO folder(id, name,parent_id) VALUES(3,'根目录', null);
- INSERT INTO folder(id, name,parent_id) VALUES(23,'语文', 6);
- INSERT INTO folder(id, name,parent_id) VALUES(17,'数学', 6);
- INSERT INTO folder(id, name,parent_id) VALUES(8,'英语', 6);
- INSERT INTO folder(id, name,parent_id) VALUES(6,'课程', 3);
- UPDATE doc SET
- full_folder = CONCAT(folder.name, '\',doc.filename),test_var = folder.parent_id
- FROM folder WHERE doc.folderid = folder.id;
- UPDATE doc SET
- full_folder = CONCAT(folder.name, '\',doc.full_folder),test_var = folder.parent_id
- FROM folder WHERE to_number(doc.test_var,'999999999999999999') = folder.id;
- UPDATE doc SET
- full_folder = CONCAT(folder.name, '\',doc.full_folder),test_var = folder.parent_id
- FROM folder WHERE to_number(doc.test_var,'999999999999999999') = folder.id;
复制代码
注意要把to_number哪里换成mysql的字符转整数函数
我电脑没有mysql,我用的是postgresql。
刚学的sql语句,只能分三步进行,而且还要新建一个栏位。
如果有大神的话,可能一句就搞定了。
只能说我平时用关系型数据库比较少吧。 |
|