mysql 遍历 父子,MySQL实现树的遍历

MySQL实现树的遍历

经常在一个表中有父子关系的两个字段,比如empno与manager,这种结构中需要用到树的遍历。在Oracle 中可以使用connect by简单解决问题,参见http://blog.csdn.net/ylqmf/archive/2010/01/11/5172866.aspx,但MySQL 5.1中还不支持(据说已纳入to do中),要自己写过程或函数来实现。

一、建立测试表和数据:

view plaincopy to clipboardprint?

DROP TABLE IF EXISTS `channel`;

CREATE TABLE `channel` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`cname` varchar(200) DEFAULT NULL,

`parent_id` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

/*Data for the table `channel` */

insert  into `channel`(`id`,`cname`,`parent_id`)

values (13,'首页',-1),

(14,'TV580',-1),

(15,'生活580',-1),

(16,'左上幻灯片',13),

(17,'帮忙',14),

(18,'栏目简介',17);

DROP TABLE IF EXISTS `channel`;

CREATE TABLE `channel` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`cname` varchar(200) DEFAULT NULL,

`parent_id` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

/*Data for the table `channel` */

insert  into `channel`(`id`,`cname`,`parent_id`)

values (13,'首页',-1),

(14,'TV580',-1),

(15,'生活580',-1),

(16,'左上幻灯片',13),

(17,'帮忙',14),

(18,'栏目简介',17);

二、利用临时表和递归过程实现树的遍历(mysql的UDF不能递归调用):

view plaincopy to clipboardprint

相关文档:

http://database.51cto.com/art/200910/155625.htm

本文的unique列上插入重复值解决方案,主要基于MySQL平台。通过这些,可以做到一些新的功能和应用。希望本文能对大家有所帮助。

当unique列在一个UNIQUE键上插入包含重复值的记录时,我们可以控制MySQL如何处理这种情况:使用IGNORE关键字或者ON DUPLICATE KEY UPDATE子 ......

1 设置phpMyAdmin

Language:Chinese simplified (zh-utf-8)

MySQL 字符集:UTF-8 Unicode (utf8)

MySQL 连接校对:gbk_chinese_ci

2 创建数据库时

整理设置成 gbk_chinese_ci

3 用SQL建立表中

ENGINE=MyISAM DEFAULT CHARSET=gbk;

ENGINE=InnoDB DEFAULT CHARSET=gbk ......

mysql error number 2003

Can't connect to MySQL server xxx.xxx.xxx.xxx (10061)

在ubuntu 9.04中默认安装了mysql,默认只能本地访问,google了一下:

采用

登录到MySQL服务器端,在mysql库下执行

grant all on *.* to 'remote'@'172.16.21.39' identified by 'password';

即可

如果要设置� ......

1)、去sun的官网下载一个mysql的压缩包,我下载的是mysql-noinstall-5.5.0-m2-win32.zip。

2)、把上面下载的压缩包解压到:D:\Program Files\mysql下面。

3)、在 D:\Program Files\mysql\ 中找 my-large.ini 把它复制成 my.ini。

4)、在 my.ini 中找 [mysqld] ,添 ......

ubuntu下更改mysql默认编码(字符集)

http://blog.csdn.net/zzuduoduo/archive/2009/05/02/4142504.aspx

安装mysql

sudo apt-get install mysql-server #直接自动获得可用版本

也可以这样写

sudo apt-get install mysql-server-5.0 #安装mysql服务器5.0版本

安装后

/etc/init.d/mysql start (stop) 为启动和停止服务� ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值