2012-08-13 37 views
0

我有一個具有以下字段的表:如何從Mysql表中刪除一個事件?

PersonnelTable Table fields: 

* FirstName 
* LastName 
* Address 
* IdNumber 
* UserName 
* Password 
* Status 

在該表中我允許重複的記錄。

我想從該表中,其中刪除一個發生:

String sqlStatement = "DELETE FROM `PersonnelTable` WHERE `Password` = ? AND `UserName` = ? "; 
m_prepared.setString(1, _password); // set the password 
m_prepared.setString(2, _username); // set the user-name 
int rowsAffected = m_prepared.executeUpdate(); 

但該查詢將刪除所有地方Password = ?UserName = ?

我如何刪除使用該查詢只一個記錄記錄?

感謝

+0

的ID號是唯一的字段? – 2012-08-13 09:37:53

回答

2

LIMIT子句可以在UPDATEDELETE語句也可以使用:

"DELETE FROM `PersonnelTable` WHERE `Password` = ? AND `UserName` = ? LIMIT 1" 
1

如何刪除使用該查詢的只有一條記錄?

您可以使用mySQL的DELETE語句的「LIMIT 1」子句。

但是,如果你想刪除所有,但最後一排,你需要這樣做:

BEGIN TRANSACTION; 
SELECT COUNT(*) FROM `PersonnelTable` WHERE `Password` = ? AND `UserName` = ? FOR UPDATE; 
DELETE FROM `PersonnelTable` WHERE `Password` = ? AND `UserName` = ? LIMIT ?; # (last fetched count - 1) 
COMMIT; 
相關問題