2010-11-17 6 views

Répondre

0
$lcv = 0; 
$row_to_delete = x; 

$result = mysql_query("SELECT * FROM table"); 

while($row = mysql_fetch_array($result){ 
    if($lcv == $row_to_delete){ 
      mysql_query("DELETE"); 
    } 

    $lcv++; 
} 
+0

merci Jose ... cela semble être satisfaisant ... – Kailash

4

Vous pouvez utiliser LIMIT dans une DELETE demande si vous utilisez MySQL de

EDIT: Désolé, il ne suffit pas

L'option row_count LIMIT spécifique à MySQL SUPPRIMER indique au serveur le nombre maximum des lignes à supprimer avant que le contrôle ne soit renvoyé au client. Cela peut être utilisé pour garantir qu'une instruction DELETE donnée ne prend pas trop de temps. Vous pouvez simplement répéter l'instruction DELETE jusqu'à ce que le nombre de lignes affectées soit inférieur à la valeur LIMIT.

+0

Ce serait la meilleure solution si l'OP est en effet en utilisant MySQL –

+0

C'est pourquoi je le précise. Je ne sais pas sur les autres SGBD. – MatTheCat

+0

oui je parle de MySQL – Kailash

4

Je ne pense pas que cela soit possible dans MySQL. Le problème que vous avez est le numéro de ligne est subjective en fonction de la façon dont les données sont commandées. Si vous commandez vos données par la colonne 1 dans l'ordre croissant, puis vous commandez par la colonne 1 par ordre décroissant, qui est la ligne 1?

De préférence, vos tables doivent avoir des champs d'ID de clé primaire dans lesquels vous pouvez spécifier leur suppression.

DELETE FROM *table* WHERE id = *id* 
+0

+1: Personnellement, je pense que c'est une meilleure solution, même si ce n'est pas strictement ce que l'OP a demandé. – Powerlord

+0

Je suis d'accord, je pense juste que le PO a de bonnes raisons de le faire. – MatTheCat

Questions connexes