【问题标题】:Getting the latest row inserted to the sql for a certain ID [duplicate]获取插入到特定ID的sql的最新行[重复]
【发布时间】:2015-10-20 06:22:21
【问题描述】:

我正在创建当前工资报告

这是我的查询:

$sql = "SELECT *
FROM payroll, employees
WHERE employees.username='$username'
AND payroll.id=employees.id";

输出是: output 并向下滚动,this is the continuation of the output

总而言之,查询显示了某个 ID 的所有记录,但我希望它显示数据库中该某个 ID 的最后插入数据。怎么会这样?

【问题讨论】:

  • 使用 id desc 的顺序并限制您想要的内容
  • 试试ORDER BY employees.id DESC LIMIT 1
  • 我不确定我是否理解你。您是说获得每位员工的所有工资单记录,而您只想要每位员工的最后一个工资单记录?您的工资单记录是否有时间戳或序列号?
  • 谢谢! Order by and limit 1 作品。

标签: php mysql sql


【解决方案1】:

要获得最新的行,您必须通过id desc 订购,并且只能获得一个记录集limit 1

所以代码是

$sql = "SELECT *
FROM payroll, employees
WHERE employees.username='$username'
AND payroll.id=employees.id ORDER BY employees.id DESC LIMIT 1 ";

【讨论】:

  • 哇,它有效。谢谢!
【解决方案2】:

试试这个

$sql = "SELECT *
FROM payroll, employees
WHERE employees.username='$username'
AND payroll.id=employees.id ORDER BY employees.id DESC  LIMIT 1 " 

如果最新的 ID 是最大值。

【讨论】:

    【解决方案3】:

    使用这个 MySQL ORDER BYLIMIT

    $sql = "SELECT *
    FROM payroll, employees
    WHERE employees.username='$username'
    AND payroll.id=employees.id ORDER BY employees.id DESC LIMIT 1";
    

    【讨论】:

      【解决方案4】:
      $sql = "SELECT t1.*,t1.*
      FROM payroll t1 join employees t2 on t1.id = t2.id
      WHERE t1.username='$username' order by t2.id desc limit 1";
      

      【讨论】:

        猜你喜欢
        • 2012-03-17
        • 2014-01-29
        • 2014-07-07
        • 1970-01-01
        • 2015-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多