我有一个结构如下的 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
是否有使用一些 while 循环和条件的简单 PHP 解决方案?
我是 SQL 的新手,不知道 JOIN 查询,这可能是一个非常简单的问题,但没有得到任何解决方案。 任何解决方案表示赞赏。
最佳答案
尝试像这样巧合地调用一个变量:
$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]
}
希望这就是你要找的东西
关于php - 选择查询结构的根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23853911/