如何解决如果存在的条目和不存在的条目,则返回列表
我在数据库表中有一个网络设备列表。用户可以使用Web界面获取有关这些设备的杂项信息(在查询中以WHERE hostname IN('hostname1','hostname2',...)
结尾)。假设给定的五个条目之一由于拼写错误而错误。所以通常我从数据库查询中得到四个答案,错误的一个仍然会被忽略。我需要检测到不存在的条目,以向用户提供如下提示:
hostname1 exist -> requested Information
hostname2 exist -> requested Information
hostname3 NOT EXIST
hostname4 exist -> requested Information
hostname5 exist -> requested Information
我用EXISTS选项用尽了所有想法。预先感谢!
解决方法
在创建临时表“搜索”之后,我只找到一种解决方案,假设其中包含一个名为“主机名”的列,并带有值。我找不到将值列表(“ hostname1”,“ hostname2”,“ hostname4”)转换为记录列表的方法。因此,这里是一列的临时表:
表“搜索”列“主机名”
hostname1
hostname2
hostname4
在这里创建“搜索”表:
CREATE TEMPORARY TABLE IF NOT EXISTS search AS SELECT 'hostname1' as hostname from host union SELECT 'hostname2' as hostname from host union select 'hostname4' as hostname from host
然后在列上进行左连接:
CREATE TEMPORARY TABLE IF NOT EXISTS search AS SELECT 'hostname1' as hostname from host union SELECT 'hostname2' as hostname from host union select 'hostname4' as hostname from host; select * from search left join host ON host.hostname = search.hostname;
这是输出列(主机名,id,主机名):
hostname1 1 hostname1
hostname2 2 hostname2
hostname4 NULL NULL
在我的情况下,初始表主机中不存在hostname4,例如,这种方法可使用结果的id列检测不正确的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。