我有一个SQL表,其结构如下
MENU1
M1_SM_1
M1_SM1_SSM_1
M1_SM1_SSM_2
M1_SM_2
M1_SM2_SSM_1
M1_SM2_SSM_2
M1_SM_3
M1_SM3_SSM_1
M1_SM3_SSM_2
MENU2
M2_SM_1
M2_SM1_SSM_1
M2_SM1_SSM_2
M2_SM_2
M2_SM2_SSM_1
M2_SM2_SSM_2
........................
........................所有这些都存储在sql表中,如下所示
+ID-------NAME------PARENT_ID
1 MENU1 0
2 MENU2 0
3 MENU3 0
4 M1_SM1 1
5 M1_SM2 1
6 M1_SM1_SSM1 4
7 M1_SM1_SSM2 4
.............................
.............................现在我已经给出了一个值,可以是MENU1、M1_SM1或M1_SM1_SSM1 (名称)(名称是唯一的)
我想选择其父元素为0的根元素,那么sql查询应该是什么呢?
也就是说,例如,如果我给出了M1_SM1_SSM1、M1_SM1或MENU1,那么选定的行将是
+ID-------NAME------PARENT_ID
1 MENU1 0有没有简单的PHP解决方案,使用一些while循环和条件来达到这个目的?
我是SQL的新手,不了解连接查询,这可能是一个非常简单的问题,但没有得到任何解决方案。欢迎使用任何解决方案。
发布于 2014-05-25 17:52:31
试着像这样巧合地调用一个变量:
$call = array(
"MENU1"=>array(
"MENU1",
"M1_SM1",
"M1_SM1_SSM1"
),
"MENU2"=>array(
"MENU2",
"M1_SM2",
"M1_SM1_SSM2"
),
"M1_SM1"=>array(
"M1_SM1"
),
"M1_SM1_SSM1"=>array(
"M1_SM1_SSM1"
),
"M1_SM2"=>array(
"M1_SM2"
),
"M1_SM1_SSM2"=>array(
"M1_SM1_SSM2"
)
);并执行您的查询
foreach($call as $k=>$v){
// my select here WHERE NAME = $call[$k]
}希望这就是你想要的
https://stackoverflow.com/questions/23853911
复制相似问题