2012-01-15 3 views

ответ

2

Я думаю, что вам нужно это:

START TRANSACTION; 
    DELETE FROM tab1 
    where id = (SELECT id FROM tab1 WHERE /*your condition here*/); 
COMMIT; 

Edit: на основе замечанием Op»ниже, Там нет никакого способа узнать, какая строка была последней удалена одна, но вы можете создать Trigger, чтобы это сделать, см. This tutorial.

+0

мне нужно вернуть идентификатор Teh PHP скрипт, а также. – user1119096

+0

Тогда вы должны были указать это в своем вопросе ... – buc

+0

Невозможно определить, какая последняя строка была удалена, но вы можете использовать триггер для этого: http://dev.mysql.com/ doc/refman/5.0/en/triggers.html –

0

Это код SQL, в котором вы нуждаетесь, для достижения того, что вы просили.

START TRANSACTION; 
    DELETE 
    FROM tab1 
    WHERE id IN (
    SELECT id 
    FROM tab1 
    WHERE 1=1 
    LIMIT 1 
    ) 
COMMIT; 

Для того, чтобы передать результаты обратно на PHP, вы должны использовать Triggers.

+0

Мне нужно вернуть идентификатор в php-скрипт как Что ж. – user1119096

1

из вашего запроса:

START TRANSACTION; 
    SELECT * FROM tab1 WHERE 1 LIMIT 1; 
    DELETE FROM tab1 WHERE id="{HOW TO ACCESS ID FROM THE SELECT ABVOE?}" 
COMMIT; 

я полагал, что вы хотите удалить первую запись на столе. вы можете получить подсказку из этого примера:

START TRANSACTION; 
    SELECT @A:=SUM(salary) FROM table1 WHERE type=1; 
    UPDATE table2 SET [email protected] WHERE type=1; 
    SELECT @A as UpdateID; 
COMMIT; 
+0

Мне нужно вернуть идентификатор к скрипту php. – user1119096

Смежные вопросы