2012-01-15 41 views
0
START TRANSACTION; 
SELECT * FROM tab1 WHERE 1 LIMIT 1; 
DELETE FROM tab1 WHERE id="{HOW TO ACCESS ID FROM THE SELECT ABVOE?}" 
COMMIT; 

我在找的是解决问题的办法。如何从mysql访问数据

回答

2

我想你需要的是这样的:

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

编辑:基于下面的OP”评论,有没有办法知道哪一行是被删除的最后一个,但你可以创建一个Trigger为您做到这一点,请参阅This tutorial.

+0

我需要返回ID到teh php脚本。 – user1119096 2012-01-15 14:50:44

+0

然后你应该在你的问题中指定这个... – buc 2012-01-15 14:53:52

+0

有没有办法告诉最后一行已被删除,但你可以使用触发器来做到这一点看到这个:http://dev.mysql.com/ doc/refman/5.0/en/triggers.html – 2012-01-15 14:57:36

0

这是您需要的SQL代码,以实现您的要求。

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

为了将结果传递回PHP,您必须使用Triggers

+0

我需要将ID返回给php脚本好。 – user1119096 2012-01-15 14:58:29

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

我需要返回该ID到PHP脚本以及。 – user1119096 2012-01-15 14:58:40