我正在用 JAVA 編輯 SQL,但不斷收到 ERROR
如果我理解正確,如果狀態正常,我應該得到
SELECT name FROM inventura_table where state='O'
當我通過腳本執行相同的選擇時,它作業得很好
Connection conn = DriverManager.getConnection(url, user, password);
String SQL = "SELECT name FROM inventura_table where ?";
PreparedStatement pstmt = conn.prepareStatement(SQL);
ResultSet rs;
switch (state) {
case "OK":
pstmt.setString(1, "state='O' ");
break;
case "M":
pstmt.setString(1, "state='M' ");
break;
case "V":
pstmt.setString(1, "state='V' ");
break;
case "removed":
pstmt.setString(1, "out_date IS NOT NULL");
break;
}
錯誤
錯誤:WHERE 的引數必須是布爾型別,而不是字符變化型別
uj5u.com熱心網友回復:
你正在嘗試的是不可能的。您只能為條件設定值,而不能創建新條件。
你可以這樣做:
Connection conn = DriverManager.getConnection(url, user, password);
String SQL = "SELECT name FROM inventura_table";
if (state.equals("removed")) {
SQL = " where out_date IS NOT NULL";
}
else {
SQL = " where state = ?";
}
PreparedStatement pstmt = conn.prepareStatement(SQL);
ResultSet rs;
switch (state) {
case "OK":
pstmt.setString(1, "O");
break;
case "M":
pstmt.setString(1, "M");
break;
case "V":
pstmt.setString(1, "V");
break;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/510539.html
標籤:爪哇sql
上一篇:更新列中的日期字串
