我有一个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 dosn的新手,不了解JOIN查询,这可能是一个非常简单的问题,但没有得到任何解决方案。 任何解决方案都表示赞赏。
答案 0 :(得分:0)
尝试调用变量,如下所示:
$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]
}
希望你看到的是什么