代码之家  ›  专栏  ›  技术社区  ›  Jeroen Hoff

重命名查询中的值

  •  2
  • Jeroen Hoff  · 技术社区  · 7 年前

    我在mySQL数据库中重命名列中的特定值时遇到问题。起初,我以为可以使用“AS”来重命名,但实际上我正在尝试重命名列中的值。我的专栏名为FoundLost。在此列中,我存储值“0”和“1”找到“0”,而“1”丢失。

    我需要重命名此值的原因是因为我使用此数据库中的数据来创建pieChart。具有该功能。getName它提供名称“0”和“1”。

    我希望有人能帮我!

    带有查询的类的代码如下:

    public static ObservableList getPChartFoundLost() {
        String query = "SELECT FoundLost, concat(round(count(FoundLost) *100 / (SELECT count(FoundLost) FROM Luggage))) AS percent FROM Luggage GROUP BY FoundLost";
    
        ObservableList FoundLost = FXCollections.observableArrayList();
    
        Connection connection = DatabaseUtils.connect();
    
        if (connection != null) {
            try {
                Statement statement = connection.createStatement();
                ResultSet resultSet = statement.executeQuery(query);
    
                while (resultSet.next()) {
    
                    FoundLost.add(new PieChart.Data(resultSet.getString("FoundLost"), resultSet.getInt("percent")));
                }
    
                resultSet.close();
                statement.close();
            } catch (SQLException sqle) {
                System.out.println(sqle.getMessage());
            }
            DatabaseUtils.disconnect(connection);
        }
    
        return FoundLost;
    }
    

    控制器:

        public void clickPChartFoundLost(ActionEvent event) {
    
        //PieChart
        ObservableList FoundLost = StatisticsUtils.getPChartFoundLost();
    
        pieChart.setVisible(true);
        pieChart.setData(FoundLost);
        pieChart.setTitle("Found and Lost luggage");
    
        for (final PieChart.Data data : pieChart.getData()) {
            data.getNode().addEventHandler(MouseEvent.ANY,
                    new EventHandler<MouseEvent>() {
    
                @Override
                public void handle(MouseEvent e) {
    
                    //Label vullen met data van Observable list uit Database
                    pieChartValueLable.setText(String.valueOf(data.getName()) + ": "
                            + String.valueOf(data.getPieValue()) + "%");
                }
            });
        }
    }
    

    谢谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   O. Jones    7 年前

    在查询中,请尝试将其作为第一列,而不仅仅是 FoundLost . 它转换了您的 0 1 值转换为图表的有意义字符串。查询的其余部分可以保持不变。

    IF(FoundLost = 0,'Found','Lost') AS FoundLost