写一个函数要求如下!mysql 表。
我有一个表里面有员工和老板信息,现在想输入老板名,返回属于此老板的所有员工。比如输入Z, 下面有W,X,Y, 他们下面又有各自员工。要求返回结果15.EMP_NAME SUP_NAME
A Y
B Y
C Y
D Y
E X
F X
G X
H X
I X
J W
K W
L W
W Z
X Z
Y Z 递归的?
你是要用python来完成, 还是用mysql本身来完成?
如果是python, 一层层取就啦.
mysql的话, 我不知道这个循环要怎么写了. 用python来完成,mysql不支持函数循环调用。 table="""EMP_NAME SUP_NAME
A Y
B Y
C Y
D Y
E X
F X
G X
H X
I X
J W
K W
L W
W Z
X Z
Y Z
"""
from collections import defaultdict
import re
s_e=defaultdict(list)
p = re.compile("(\S+)\s*(\S+)\n",re.M)
for e,s in p.findall(table):
s_e.append(e)
def get_e(a):
if a in s_e:
rst = s_e[:]
for x in s_e:
rst += get_e(x)
return rst
else:
return []
print "Z:", get_e("Z")
print "X:", get_e("X")
回复 1# luiszhu C:\Python27\python.exe C:/workspace/untitled/s_e.py
Z: ['W', 'X', 'Y', 'J', 'K', 'L', 'E', 'F', 'G', 'H', 'I', 'A', 'B', 'C', 'D']
X: ['E', 'F', 'G', 'H', 'I']
我的表很大,能不导出表直接连数据库查吗?
回复 4# Hadron74
回复 5# luiszhu
道理一样呀,只要把从词典查询的语句改成mysqldb的执行"SELCET ..."再对检索结果进行分析,进行递归就行了。
回复 5# luiszhu
查了一个网上纯mySQL的解决方案,也许对你有用:
http://www.2cto.com/database/201209/152513.html
页:
[1]