我在重命名 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
。它将您的 0
和 1
值转换为对您的图表有意义的字符串。您的查询的其余部分可以保持不变。
IF(FoundLost = 0,'Found','Lost') AS FoundLost
关于mysql - 在查询中重命名值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886683/