【问题标题】:MySQL- How to fetch multiple values of same column using a single SQL query?MySQL-如何使用单个 SQL 查询获取同一列的多个值?
【发布时间】:2017-05-03 12:39:31
【问题描述】:

我需要将结果集中的每个值存储到浮点变量中。目前我正在为此使用多个 SQL 查询。我已经合并了查询

float Wb_SWLat = 0;
float Wb_NELat = 0;
float Wb_SWLon = 0;
float Wb_NELon = 0;

float Nb_SWLat = 0;
float Nb_NELat = 0;
float Nb_SWLon = 0;
float Nb_NELon = 0;

//Query:
String qryWb = "select zone, SW_lat, SW_lon, NE_lat, NE_lon from tbl_zones";

try {
    Statement stmt = (Statement) conn.createStatement();

    Wb=stmt.executeQuery(qryWb);
    while(Wb.next()){ 
        if (Wb.getString("zone") == "west"){
            Wb_SWLat=Wb.getFloat("SW_lat");
            Wb_NELat=Wb.getFloat("NE_lat");
            Wb_SWLon=Wb.getFloat("SW_lon");         
            Wb_NELon=Wb.getFloat("NE_lon");
        }
        else if (Wb.getString("zone") == "north"){
            Nb_SWLat=Wb.getFloat("SW_lat");
            Nb_NELat=Wb.getFloat("NE_lat");
            Nb_SWLon=Wb.getFloat("SW_lon");         
            Nb_NELon=Wb.getFloat("NE_lon");
        }
    }
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

这是有效的方法吗?或这样做的正确方法?

下面是我的 MySQL 表,tbl_zones:-

pk_id  jn    zone     SW_lat     SW_lon     NE_lat     NE_lon
--------------------------------------------------------------
 1     j1    west     9.99404    76.3567    9.99419    76.3572
 2     j2    north    9.99419    76.3572    9.99471    76.3573
 3     j3    south    9.99384    76.3572    9.99413    76.3573
 4     j4    east     9.99413    76.3574    9.99426    76.3577

【问题讨论】:

  • 尊敬的程序员, 任何一段代码都受到高度赞赏。提前致谢。

标签: java mysql sql resultset


【解决方案1】:

在where 子句中使用OR 运算符。这将为您提供一个查询(和roundtrip time to DB)所需的两行行。

现在,为了识别每个提取的行,将zone 添加到您的select 语句中,并在您的代码中使用if 子句来识别ResultSet 对象中的当前行。

查询应该如下所示:

select SW_lat, SW_lon, NE_lat, NE_lon, zone from tbl_zones where zone='west' OR zone='north

【讨论】:

  • @jasim 可以遍历ResultSet中获取的行,如图here。
  • 不是通过ResultSet 中的变量,而是通过行。这将帮助您使用两个提取的行。明白了吗?
  • 也选择“区域”,并将其作为每一行的标识符,如you can't depend on order。
  • 高效?是的。漂亮?没那么多。但是对于这个问题的范围 - 这已经足够了。如果您认为我的回答有帮助,请将其标记为已接受。
  • @jasim pretty = 删除代码重复 + 将浮点提取封装在一个方法中,如果结果则获取一行并返回复合数据结构...
猜你喜欢
  • 2012-12-07
  • 1970-01-01
  • 2015-10-14
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 1970-01-01
相关资源
最近更新 更多