php
  • sql
  • delete-row
  • corresponding-records
  • 2013-03-18 15 views 1 likes 
    1

    這是表:如何將具有重複用戶名的行刪除到其他行?

    username:  id: 
    
    john   1 
    john   2 
    john   56 
    john   75 
    john   98 
    

    現在我想查詢和刪除這些行的一個隨機保留其他四假設我不知道的「ID」的值,因爲它是自動遞增。

    下面的代碼,我不知道該怎麼加那麼它只刪除與相關行的一個「約翰」

    $query = ("DELETE FROM table WHERE username='$name' && id=''"); 
    

    如何修改這個所以它刪除一行名爲john而不是全部?

    固定碼

    奏效簡單的解決方案。

    $query = ("DELETE FROM table WHERE username='$name' LIMIT 1"); 
    
    +1

    聽起來像是你應該可能使'username'唯一索引。 – 2013-03-18 20:34:20

    回答

    0

    我不確定它是否可能,但也許將結果限制爲1?

    $query = ("DELETE FROM table WHERE username='$name' LIMIT 1"); 
    
    +0

    謝謝,這就像我想要的一樣! – user2142549 2013-03-18 20:56:39

    +1

    @ user2142549如果一個答案有效,並且您認爲它很好,您應該點擊剛剛選中的支票。這接受了答案並給出了答案者的聲望。它也給你2的聲望。 – Markasoftware 2013-03-18 20:58:42

    0

    我相信這將工作:

    $name = 'john'; 
    
    $query = ("DELETE FROM table WHERE id = (SELECT id FROM table WHERE username = '$name' ORDER BY RAND() LIMIT 1)"); 
    
    相關問題