MySQL {term}.format(term=terms)解决筛选问题

问题:数据表中某一字段(假设为os)的存值是各个主机的操作系统,现在想在页面中归纳操作系统,并根据归纳后的操作系统类别进行搜索,搜索项有“CentOS”、“Ubuntu”、“RedHat”、“SUSE”、“其他”,“所有”,对应的前端设计传值为“CentOS”、“Ubuntu”、“RedHat”、“SUSE”,“others”,“”
 
 
数据库数据内容:
mysql> select hostname,os from hosts group by deviceid;
+-----------------------+--------------------------------------------------------+
| hostname              | os                                                     |
+-----------------------+--------------------------------------------------------+
| redhat6.2             | Red Hat Enterprise Linux Server release 6.2 (Santiago) |
| redhat7.3             | Red Hat Enterprise Linux Server release 7.3 (Maipo)    |
| SyslogVM              | Cyber Threat Deep Investigation 2.3.1498               |
| centos6.0             | CentOS Linux release 6.0 (Final)                       |
| localhost.localdomain | CentOS Linux release 7.3.1611 (Core)                   |
+-----------------------+--------------------------------------------------------+
5 rows in set (0.00 sec)

 

当下拉框搜索“CentOS”、“Ubuntu”、“RedHat”、“SUSE”时很简单,直接 where INSTR(os,"CentOS"),当搜索“所有”时,可以 where INSTR(os,'')
 
但搜索“其他”,该怎样解决呢???
if sysos == "others" :
    terms = "not (INSTR(h.os,'Red Hat') or INSTR(h.os,'CentOS') or INSTR(h.os,'Ubuntu') or INSTR(h.os,'SUSE'))"
else :
    terms = "INSTR(h.os,'{item}')" .format( item =sysos)
 
 
SQL = "where  {term} ".format( term =terms )
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值