select name where id>1
2017-11-04 23:24
169 查看
啥都别说了就是高兴,明天再继续实现!!(小部分功能实现)
这才是low的正版(要求实现):
select * where phone like 133
select name,id where age > 22
select * where job = IT
# 2017-11-3大礼包
# id,name,age,phone,job
# 1,Alex,22,13651054608,IT
# 2,Egon,23,13304320533,Tearcher
# 3,nezha,25,1333235322,IT
# 可以的(虽然只有基础篇)
sel = input('请输入查询信息:') # select name,job where age=20
def greater(dxd):
se = sel.split('where')
content = se[0].split('select')
con = content[1].split(',')
# print(con,se[1]) # [' name', ' age '] # age > 20
if dxd in se[1]:
s = se[1].split(dxd)
# print(s) # [' age', '20']
f = open('SQL', encoding='utf-8')
for line in f:
line = line.strip() # 读第一行,去空格
l = line.split(',')
# print(l) # ['id', 'name', 'age', 'phone', 'job']
for titl in l:
if titl.strip() == s[0].strip(): # 找到判断条件的索引
jj = l.index(titl) # jj = 2 age
if len(con) >= 1 and content[1].strip() != '*': # 看返回的内容有几个
con_one_index0 = l.index(con[0].strip())
if len(con) >= 2:
con_one_index1 = l.index(con[1].strip())
if len(con) >= 3:
con_one_index2 = l.index(con[2].strip())
if len(con) >= 4:
con_one_index3 = l.index(con[3].strip())
for line2 in f: # 读第二行 1,Alex,22,13651054608,IT
line2_l = line2.split(',')
if content[1].strip() == '*':
if dxd == '>':
if int(line2_l[jj]) > int(s[1]):
xing = ','.join(line2_l)
print(xing.strip())
if dxd == '<':
if int(line2_l[jj]) < int(s[1]):
xing = ','.join(line2_l)
print(xing.strip())
if dxd == '=':
if line2_l[jj].strip() == s[1].strip():
xing = ','.join(line2_l)
print(xing.strip())
if dxd == 'like':
long = len(s[1].strip()) # 133 3
if str(line2_l[jj][0:long].strip()) == s[1].strip(): # ###like
xing = ','.join(line2_l)
print(xing.strip())
elif len(con) >= 1:
find1 = line2_l[con_one_index0].strip() # 找到了要返回的内容 Alex
if len(con) >= 2:
find2 = line2_l[con_one_index1].strip()
if len(con) >= 3:
find3 = line2_l[con_one_index2].strip()
if len(con) >= 4:
find4 = line2_l[con_one_index3].strip()
if dxd == '>':
if int(line2_l[jj]) > int(s[1]): # 20
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == '<':
if int(line2_l[jj]) < int(s[1]): # 20
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == '=':
if line2_l[jj].strip() == s[1].strip():
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == 'like':
long = len(s[1].strip()) # 特么的!!空格太重要了
if str(line2_l[jj][0:long].strip()) == s[1].strip():
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
f.close()
if '<' in sel:
dxd = '<'
if '>' in sel:
dxd = '>'
if '=' in sel:
dxd = '='
if 'like' in sel:
dxd = 'like'
greater(dxd)
sel = input('请输入查询信息:') # select name, age where age>20 se = sel.split('where') content = se[0].split('select') con = content[1].split(',') # print(con,se[1]) # [' name', ' age '] # age > 20 if '>' in se[1]: s = se[1].split('>') # print(s) # [' age', '20'] f = open('SQL',encoding='utf-8') for line in f: line = line.strip() # 读第一行,去空格 l = line.split(',') # print(l) # ['id', 'name', 'age', 'phone', 'job'] for titl in l: if titl.strip() == s[0].strip(): # 找到判断条件的索引 jj = l.index(titl) # name 和 age for i in range(len(con)): con_one_index = l.index(con[i].strip()) # 找到name的索引 # 1 for line2 in f: # 读第二行 1,Alex,22,13651054608,IT line2_l = line2.split(',') find1 = line2_l[con_one_index].strip()# 找到了要返回的内容 Alex if int(line2_l[jj]) > int(s[1]): # 20 print(find1) f.close()
这才是low的正版(要求实现):
select * where phone like 133
select name,id where age > 22
select * where job = IT
# 2017-11-3大礼包
# id,name,age,phone,job
# 1,Alex,22,13651054608,IT
# 2,Egon,23,13304320533,Tearcher
# 3,nezha,25,1333235322,IT
# 可以的(虽然只有基础篇)
sel = input('请输入查询信息:') # select name,job where age=20
def greater(dxd):
se = sel.split('where')
content = se[0].split('select')
con = content[1].split(',')
# print(con,se[1]) # [' name', ' age '] # age > 20
if dxd in se[1]:
s = se[1].split(dxd)
# print(s) # [' age', '20']
f = open('SQL', encoding='utf-8')
for line in f:
line = line.strip() # 读第一行,去空格
l = line.split(',')
# print(l) # ['id', 'name', 'age', 'phone', 'job']
for titl in l:
if titl.strip() == s[0].strip(): # 找到判断条件的索引
jj = l.index(titl) # jj = 2 age
if len(con) >= 1 and content[1].strip() != '*': # 看返回的内容有几个
con_one_index0 = l.index(con[0].strip())
if len(con) >= 2:
con_one_index1 = l.index(con[1].strip())
if len(con) >= 3:
con_one_index2 = l.index(con[2].strip())
if len(con) >= 4:
con_one_index3 = l.index(con[3].strip())
for line2 in f: # 读第二行 1,Alex,22,13651054608,IT
line2_l = line2.split(',')
if content[1].strip() == '*':
if dxd == '>':
if int(line2_l[jj]) > int(s[1]):
xing = ','.join(line2_l)
print(xing.strip())
if dxd == '<':
if int(line2_l[jj]) < int(s[1]):
xing = ','.join(line2_l)
print(xing.strip())
if dxd == '=':
if line2_l[jj].strip() == s[1].strip():
xing = ','.join(line2_l)
print(xing.strip())
if dxd == 'like':
long = len(s[1].strip()) # 133 3
if str(line2_l[jj][0:long].strip()) == s[1].strip(): # ###like
xing = ','.join(line2_l)
print(xing.strip())
elif len(con) >= 1:
find1 = line2_l[con_one_index0].strip() # 找到了要返回的内容 Alex
if len(con) >= 2:
find2 = line2_l[con_one_index1].strip()
if len(con) >= 3:
find3 = line2_l[con_one_index2].strip()
if len(con) >= 4:
find4 = line2_l[con_one_index3].strip()
if dxd == '>':
if int(line2_l[jj]) > int(s[1]): # 20
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == '<':
if int(line2_l[jj]) < int(s[1]): # 20
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == '=':
if line2_l[jj].strip() == s[1].strip():
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
if dxd == 'like':
long = len(s[1].strip()) # 特么的!!空格太重要了
if str(line2_l[jj][0:long].strip()) == s[1].strip():
if len(con) >= 4:
print(find1, find2, find3, find4)
elif len(con) >= 3:
print(find1, find2, find3)
elif len(con) >= 2:
print(find1, find2)
elif len(con) == 1 and content[1].strip() != '*':
print(find1)
f.close()
if '<' in sel:
dxd = '<'
if '>' in sel:
dxd = '>'
if '=' in sel:
dxd = '='
if 'like' in sel:
dxd = 'like'
greater(dxd)
相关文章推荐
- thinkphp5里面 使用where('id',$id)->select()查询一条记录,在视图页面出错
- select * from user where name in (select name from user group by name having count(*) > 1)
- 解决 Select * from TableName where ID in (@ids) 问题
- select * from (select P.*,ROWNUM RN FROM(select * from Mp_Relatedart where pubbaseid=785 order by ID ASC )P)M WHERE M.RN>2 and M.RN <= 7
- select name from syscolumns where id=object_id(\'表名\')
- 有多少行? SELECT rows FROM sysindexes WHERE id = OBJECT_ID('table_name') AND indid < 2
- HTML<input>标签的name和id属性区别
- 句话是什么意思?if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PerPer
- MySQL查询优化:LIMIT 1避免全表扫描【如判断用户是否存在select * from users where username='123' and passwd='123' limit 1】
- sql Split函数(WHERE RouterID IN (SELECT Item FROM dbo.Split(@routerIds,',')))
- SSH框架-unexpected token: * near line 1, column 8 [select * from tb_chaper where course_id = 2];报错解决方法
- mysql分页语句where id &gt; 0 能提高效率
- if exists (select * from dbo.sysobjects where id = object_id ..
- 在将 varchar 值 'select * from soft where id=' 转换成数据类型 int 时失败
- s:select name="collegeId" action得不到值
- SELECT a.loginname,a.deviceid,a.time,Row_Number() OVER (partition by a.loginname ORDER BY a.deviceid desc,a.time asc) rank
- 16.Evaluate the following query: SQL> SELECT promo_name||q'{'s start date was }'||promo_begin_date A
- select if(id,id,name) as name ,* from test
- asp.net 隐藏页面<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=''>的值
- document.form1(<form name="form1">).(可以根据id=“” 和name=" ").value得到值