最近看到一个有意思的树形结构,为每个节点添加了lft和rgt两个属性。这样查找该节点的子节点、查找该节点所有父节点,就不用去递归查询,只需要用between、and语句就可以实现。下面以创建一个栏目树为例,以下是我的理解。
一般来讲,我们创建栏目树的时候,大多只需要一个外键parentid来区分该节点属于哪个父节点。数据库的设计如下图:
这样一来,
1.查找该节点的所有子节点,则需要采用sql的递归语句:
Sql代码
select * from tableName connect by prior id=sj_parent_id start with id=1
select * from tableName connect by prior id=sj_parent_id start with id=1
(oracle 写法,mysql目前不支持,如果mysql想查找树形,可以利用存储过程).
2.查找该节点的父节点的sql递归语句:
Sql代码
select * from tableName connect by prior sj_parent_id =id start with id=1
select * from tableName connect by prior sj_parent_id =id start with id=1
如果数 ......
经过了一周的努力,成功签下了上海宝信软件西安分公司。
在这里,简单分享一下这次的经历。
首先简单陈述下个人的一些基本信息,正规统招本科非计算机专业,2008-2009年8月接受东方标准软件工程师培训,完成了一些比较完整的项目,掌握了基本的J2EE开发的核心技术。培训结束了,参加了一些知名企业的校园招聘,因自身水平有限,未果。后参加全国硕士研究生入学考试,成绩一般。年后开始准备找工作。
在投递简历之前,结合个人的一些基本情况,做了以下规划:
工作的要求如下: 1.工作中需要大量使用英语 2.在社交中生活应远多于办公室生活。 3.公司有顶级的软件技术背景。 4.外派机会 5.工资4k以上 我的条件: 1.英语实力 2.语言表达能力 3.领导社团经验 4.专业实践能力 这个工作既然既要合适我,又要能胜任
2月23日,通过网上招聘信息,投递了一封求职简历。
2月24日,接到笔试通知,晚上回学校简单的进行了一下自习,巩固了基本的知识。
2月25日,来到西安高新区光电园西安分公司进行笔试。
笔试题题型难度类似于软考程序员,因为准备过着方面的考试,答的较为轻松。
笔试题型为选择和两道 ......
只导创建表的结构:
bin/mysqldump -d --add-drop-database=FALSE --add-drop-table=FALSE -usosodb -p sosodb TEST > /tmp/test.sql
只导单行的INSERT语句:
bin/mysqldump --extended-insert=FALSE --add-drop-database=FALSE --add-drop-table=FALSE --create-options=FALSE -t --add-locks=FALSE -usosodb -p sosodb TEST > /tmp/test.sql
......
mysql有个字段是DATETIME类型,我可以按月统计么,该怎么写sql语句?
select month(f1) from tt group by month(f1)
or
select DATE_FORMAT(f1,'%m') from tt group by DATE_FORMAT(f1,'%m')
比如数据库的为2008-01-15 12:10:00
则DATE_FORMAT的参数格式分别得到的结果为:
'%Y' 2008
'%Y-%m' 2008-01
'%Y-%c' 2008-1
'%m' 01
'%c' 1
Date_format可以使用的格式有:
格式
描述
%a
缩写星期名
%b
缩写月名
%c
月,数值
%D
带有英文前缀的月中的天
%d
月的天,数值(00-31)
%e
月的天,数值(0-31)
%f
微妙
%H
小时 (00-23)
%h
小时 (01-12)
%I
小时 (01-12)
%i
分钟,数值(00-59)
%j
年的天 (001-366)
%k
小时 (0-23)
%l
小时 (1-12)
%M
月名
%m
月,数值(00-12)
%p
AM 或 PM
%r
时间,12-小时(hh:mm:ss AM 或 PM)
%S
秒(00-59)
%s
秒(00-59)
%T
时间, 24-小时 (hh:mm:ss)
%U
周 (00-53) 星期日是一周的第一天
%u
周 (00-53) 星期一是 ......
在工作中碰到一个Mysql字段更新问题
在custom表中有一个tariffurl的值中有如下情况:
uploadfiles ariff2007031172720306698.jpg以及uploadfiles ariff2007031172720306690.jpg;uploadfiles ariff2007031172720306691.jpg形式
要更改成uploadfiles/tariff/200703/1172720306698.jpg及 uploadfiles/tariff/200703/1172720306690.jpg;uploadfiles/tariff200703/1172720306691.jpg 形式
可以综合利用substring函数和cancat函数来实现,步骤如下:
1、 update custom set tariffurl=concat('uploadfiles/tariff/200703/',substring(tariffurl,24)) where tariffurl like 'uploadfiles ariff200703%'
2、update custom set tariffurl=concat(substring(tariffurl,1,55),'/tariff/200703/',substring(tariffurl,68))
where tariffurl like 'uploadfiles/tariff/200703/%' and tariffurl like'%;uploadfiles %'
substring(filed,m):截取filed字段从第m个字符开始到结束的字符串;
substring(filed,m,n):截取filed字段从第m个字符开始的长度为n的字符串;<-------MSSQL
cancat(string1,sting2,……):将string1、string2, ……字符串连接起来。 ......
Perl中DBI、DBD::mysql模块的安装
使用的软件版本
DBI-1.604.tar.gz
DBD-mysql-4.006.tar.gz
建议使用以上版本搭配,否则可能连接mysql错误
一、DBI的安装
wget http://www.cpan.org/modules/by-module/DBD/DBI-1.604.tar.gz
tar -zxvf DBI-1.604.tar.gz
cd DBI-1.604
perl Makefile.PL
make
make test
make install
二、DBD的安装
注意mysql的环境变量,若没有则用 添加/usr/local/mysql/bin到环境变量PATH中
PATH=/usr/local/mysql/bin:$PATH;
export PATH (mysql的安装路径根据实际情况填写)
wget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.006.tar.gz
tar -zxvf DBD-mysql-4.006.tar.gz
cd DBD-mysql-4.006
perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
make
make test
make install
三、其它可能发生的状况
如果运行某个调用MYSQL数据库的程序时出现如下系统提示:
install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.6.1/i386-lin ......