2012-08-13 3 views
0

J'ai une table avec les champs suivants:Comment supprimer une occurrence de la table Mysql?

PersonnelTable Table fields: 

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

Dans ce tableau, je laisse les enregistrements en double.

Je veux supprimer une occurrence de cette table où:

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(); 

Mais cette requête supprimerait tous les enregistrements où Password = ? et UserName = ?

Comment puis-je supprimer seulement un enregistrement en utilisant cette requête ?

Merci

+0

IDnumber est unique sur le terrain? –

Répondre

2

La clause LIMIT peuvent être utilisés dans UPDATE ou DELETE déclarations aussi:

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

Comment puis-je supprimer un seul enregistrement à l'aide de cette requête?

Vous pouvez utiliser la clause "LIMIT 1" de l'instruction DELETE de mySQL.

Mais si vous voulez supprimer toutes les dernières lignes, mais, vous devez faire ceci:

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; 
Questions connexes