mysql - 在查询中重命名值

标签 mysql database javafx javafx-8 pie-chart

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

我需要重命名这个值的原因是因为我使用这个数据库中的数据来创建一个饼图。使用 .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;
}

Controller :

    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()) + "%");
            }
        });
    }
}

谢谢!!

最佳答案

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

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

关于mysql - 在查询中重命名值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886683/

相关文章:

bash - 带参数的 MySQLdump

mysql - 查询结果乘以2

java - 如何使用 Hibernate 在表中插入新行?

mysql - 如何阻止 LIMIT 减慢查询速度?

mysql - 建议使用替代查询来提高性能?

sql - 数据库设计 : third table that relates to both parent and child tables

mysql - 消除 mysql 数据库查询中的重复项

java - 编辑场景生成器生成模型

JavaFx - 更新 GUI

java - JavaFX TreeView 中的 BeforeTreeItemSelectionChanged 事件?