我99%的问题在某处得到了回答,但是我似乎找不到我想要的东西。到目前为止,我一直在编写sql语句以从Java的表中删除行,如下所示(这是针对名为Crime的表,其中主键称为CrimeId。CrimeId来自UI)
private DatabaseAPI db;
PreparedStatement st=db.connection.prepareStatement("DELETE FROM crime WHERE CrimeId = '"+Integer.parseInt(txtCrimeId.getText())+"';");
如何编写复合键的where语句?例如,对于称为费用的表,其中的键既是CrimeID又是CrimeID?
答案 0 :(得分:1)
如下所示:
PreparedStatement st=db.connection.prepareStatement(
"DELETE FROM crime WHERE CrimeId = ? AND CriminalID = ?" );
st.setInt(1, Integer.parseInt(txtCrimeId.getText() );
st.setInt( 2, Integer.parseInt(txtCriminaId.getText());
答案 1 :(得分:0)
DELETE FROM charges WHERE CrimeId = '____' AND CriminalID = '____' ;
这是您要找的吗?
答案 2 :(得分:0)
您需要使用AND
。使用AND
,您可以结合条件。
阅读this了解更多信息
所以您的代码看起来像
DELETE FROM charges WHERE CrimeId = 'YourCrimeID' AND CriminalID = 'YourCriminalID' ;
只需替换YourCriminalID
和YourCrimeID
。
答案 3 :(得分:0)
我相信下一个代码应该对您有用
PreparedStatement st=db.connection.prepareStatement("DELETE FROM crime WHERE CrimeId = ? and CriminalID = ?");
st.setInt(1, Integer.parseInt(txtCrimeId.getText()));
st.setInt(2, Integer.parseInt(txtCriminalID.getText()));
st.executeUpdate();