2013-05-03 4 views
0

Мне нужно удалить одну строку из таблицы. Но когда я запускаю запрос, он удаляет всю строку. Может ли кто-нибудь помочь мне в этом? Вот мой код ниже:Как удалить одну строку из базы данных

DELETE FROM table_name 
+1

Какие строки вы хотите Удалить? –

+0

добавьте предложение where, чтобы удалить определенную строку. ex: удалить из table_name, где id = 1 –

+0

Почему upvotes? –

ответ

1

Вы должны указать WHERE пункт для удаления конкретной строки .... Ваш ИНЕКЕ может быть, как это:

DELETE FROM table_name WHERE <where_clause_condition> 

Вы можете ограничить стирание строки с помощью LIMIT.

DELETE FROM table_name WHERE <where_clause_condition> LIMIT 1 
3
DELETE FROM table_name LIMIT 1 

вот основной синтаксис DELETE в MySQL

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name 
    [WHERE where_condition] 
    [ORDER BY ...] 
    [LIMIT row_count] 

или вы также можете сделать это для конкретного ID

DELETE FROM table_name 
WHERE ID = 'X' 
LIMIT 1 

Если вы не укажете LIMIT, будут удалены все записи, который соответствует с условием.

НО есть исключение, вы можете опустить LIMIT при фильтрации через UNIQUE колонку.

+1

+1 Но я бы убрал последнее предложение. '' Где UniqueColumn, как '% abc%' ', фильтр все равно может удалить несколько строк. – Andomar

+0

@Andomar nice catch ': D' –

0

Вы должны сказать, какая конкретная строка.

использование WHERE

DELETE FROM table_name WHERE Column = 'Value' 
+0

это не гарантирует, что точно (или не более) одна строка будет удалена –

0

, например, в таблице есть поле идентификатора, или независимо от того, что показывает, какие строки вы хотите удалить.

DELETE FROM table_name WHERE id='some_value' 

some_value может быть уникальным идентификатором для конкретной строки

+0

это не гарантирует, что ровно одна строка будет удалена –

0

удалить одну строку из базы данных, Вам нужно будет использовать где положение. в том, где положение вы можете обеспечить уникальное значение/первичный ключ записи, которую вы reuqired удалить

delete from table_name WHERE id = $id 

Или вы можете добавить ограничение на запрос на удаление

delete from table_name LIMIT 1 
Смежные вопросы