我正在尝试使用外键使用数据库创建某种树。所以,有一个例子:
CREATE TABLE tree (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
pid INT(11) UNSIGNED NULL DEFAULT NULL,
title VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT TheTree FOREIGN KEY (pid) REFERENCES tree (id) ON UPDATE NO ACTION ON DELETE CASCADE
) ENGINE=InnoDB;
#insert sample data with 2 root nodes and 2 subnodes
insert into tree (id, pid, title) values
(null, null, 'test title 1'),
(null, null, 'test title 2'),
(null, 1, 'test title 1-1'),
(null, 2, 'test title 2-1');
select * from tree where pid = null
# it returns nothing.
这里以sqlFiddle为例。 我只是没有得到它。为什么我无法使用NULL值获取根节点?我该怎么办?
答案 0 :(得分:3)
您必须使用is null
代替= null
:
select * from tree where pid is null