INSERT上的MySQL WHERE ORDER BY

时间:2012-10-24 13:00:06

标签: php mysql forms insert

我查看了文档,但我似乎没有找到任何描述如何做我正在尝试的内容。然后,我没有找到任何说你也不能的东西。

$querytotal = "insert into offer_det where where fname = '".$fname."' and lname = '".$lname."' ORDER BY id DESC LIMIT 1 (`t1`, `t2`, `t3`, `t4`)
values($t1, $t2, $t3, $t4)";
$resultotal = mysql_query($querytotal);

我的问题:这是一个合适的INSERT声明吗?基本上我只需要匹配名字和姓氏,然后为它们选择最新的表项,因为可能有多个表条目具有相同的名字和姓氏。从那里我需要做的就是用我的变量$ t1-4插入四个值t1-4。

我看到了这个link,但它没有多大意义。

感谢您对我的支持。

3 个答案:

答案 0 :(得分:1)

我想你想要这样的东西......

$querytotal = "insert into offer_det (t1, t2, t3, t4) " .
"select t1, t2, t3, t4 from offer_det where fname = '$fname' and lname = '$lname' order by id desc limit 1";
$resultotal = mysql_query($querytotal);

答案 1 :(得分:0)

您的sql不正确。试试这个。

RE-RE EDITED:

$querytotal = "insert into offer_det (`t1`, `t2`, `t3`, `t4`) values(’$t1’, ’$t2’, ’$t3’, ’$t4’) where  id = (SELECT max(id) FROM offer_det where fname = '".$fname."' and lname = '".$lname."')"; 
$resultotal = mysql_query($querytotal); 

但您确定需要插入而不是更新查询吗?

答案 2 :(得分:0)

我不确定你想要什么,但也许你需要这样的东西

    $query = "Insert into offer_det (t1, t2, t3, t4)
               (SELECT $t1, $t2, $t3, $t4 FROM offer_det where
              fname = '".$fname."' and lname = '".$lname."' ORDER BY ID DESC Limit 1)";

这将在此表中插入(t1,t2,t3,t4),基于来自同一表的fname和lnam的最后结果。