Удалить ROW из базы данных MYSQL без первичного ключа - PullRequest
0 голосов
/ 23 мая 2018

Как я могу удалить одну строку из моей базы данных, не имея столбца с уникальным вводом для каждой строки?Пример:

    Surname     Name         Age

    Mark        Oswell       12
    Adrian      Peterson     15
    Mark        Penda        18
    July        Peterson     12

Основной способ сделать это:

DELETE FROM ____ WHERE ____

Если я удалю WHERE surname = Mark, я не буду удалять только 1 строку, а 2. Лучший способрешить это с помощью первичного ключа, но я не могу его использовать (длинная история, не спрашивайте почему :)).Поэтому мне нужен другой способ решить эту проблему.

Есть ли способ удалить номер строки?

В качестве примера, скажем, я хочу удалить строку с Mark Penda 18.Могу ли я сделать что-то вроде:

DELETE FROM ____ WHERE row = 3

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Просто сделай так:

delete from my_table where name in ('Oswell')
0 голосов
/ 23 мая 2018

Таблицы базы данных являются несортированными наборами.Строка не имеет внутреннего числа.

Что вы можете сделать, это просто задать условия для всех столбцов.И если вы хотите быть уверены, что удаляете только одну строку, добавьте limit cluase:

DELETE FROM mytable
WHERE       name = 'Mark' AND surename = 'Oswell' AND age = 12
LIMIT       1
...