首页 > 解决方案 > 检查最后 10 行是否重复

问题描述

我正在尝试编写一个 php 脚本,它可以查找 mySQL 数据库中的最后 10 行是否相同。如果值相同,则脚本可以发送电子邮件。

我可以获取最后 10 行。

$sql = ("SELECT ID, DayTime,Temperature FROM AllinOne ORDER BY ID DESC LIMIT 10");
    
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  // output data of each row
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: " . $row["ID"]. " - DayTime: " . $row["DayTime"]. " - Temperature " . $row["Temperature"]. "<br>";
  }
} else {
  echo "0 results";
} 

最后 10 个结果:

最近 10 个结果

现在,我正在尝试检查“温度”列中的最后 10 行是否相同(如我们所见)。

我用:

$sql2 = "SELECT Temperature, COUNT(*) as duplicates FROM AllinOne GROUP BY Temperature ORDER BY ID DESC LIMIT 10";
$result2 = $conn->query($sql2);

if ($result2->num_rows > 0) 
{
  // output data of each row
  while($row2 = $result2->fetch_assoc()) 
  {
    echo $row2["duplicates"]. "<br>";
  }
} 

但我无法收回相同的结果(我无法理解最终结果)。

$row2 结果

$row2 结果

你可以帮帮我吗???

标签: phpmysql

解决方案


执行以下查询并获取结果:

SELECT
    COUNT(*) AS count_rows,
    MIN(Temperature) AS min_temperature,
    MAX(Temperature) AS max_temperature
FROM (
    SELECT *
    FROM t
    ORDER BY DayTime DESC
    LIMIT 10
) AS x

count_rows = 10如果和则发送电子邮件min_temperature = max_temperature


推荐阅读