【发布时间】:2020-10-14 22:24:12
【问题描述】:
我有这张桌子
配置
ID Location Position CheckData UpdateDT
1 House1 Floor1 20 2020-06-24 18:12:20
2 House1 Floor1 30 2020-06-24 13:54:16
3 House1 Floor2 45 2020-06-24 10:06:34
4 House2 Roof1 70 2020-05-12 13:27:43
5 House1 Floor1 35 2020-05-12 12:20:12
我喜欢创建一个select,以便从配置表中仅获取每个“家”和“位置”的最新更新值,例如
1 House1 Floor1 20 2020-06-24 18:12:20
3 House1 Floor2 45 2020-06-24 10:06:34
4 House2 Roof1 70 2020-05-12 13:27:43
我试过这个,但它不起作用,因为我不知道如何在上面添加位置
select * from Configuration where Location = 'house 1' order by Configuration.UpdateDT desc limit 1
这是我目前拥有的 php 代码
$sqlsyntax = "SELECT * FROM `DevicesLocations`";
$resultfromsql = mysqli_query($connectionstring, $sqlsyntax);
while( $row = mysqli_fetch_array($resultfromsql) )
{
echo $row['Location'] . " " . $row['Comments'];
echo "<br />";
$sql2 = "SELECT * from Configuration where location='";
$sql2 = $sql2.$row['Location']."' order by UpdateDT desc limit 1";
echo $sql2."<br>";
$result2 = mysqli_query($connectionstring, $sql2);
while( $row2 = mysqli_fetch_array($result2) )
{
echo "..........".$row2['SensorPosition'] . " " . $row2['CheckData'] ;
echo "<br />";
}
echo "------------------------------<br>";
}
输出
House1 first home
...... floor1 20
House2 second home
...... Roof1 70
期望的输出
House1 first home
...... floor1 20
...... floor2 45
House2 second home
...... Roof1 70
如果我使用以下select,我如何才能包含最新日期?
SELECT * FROM `Configuration` group BY Configuration.SensorPosition
【问题讨论】:
-
你可以像
select * from Configuration WHERE Location = "House1" order by Configuration.UpdateDT desc limit 1一样使用WHERE -
我添加了到目前为止的代码。我想要一个列表,以便用户可以根据他拥有的最新更新选择他想要查看数据的位置。第二个房子呢?
-
row2 的结果是什么?
-
非常感谢!!!!好的想法是用户不能输入任何数据!设备移动时自动存储的数据。
-
这并没有改变它仍然易受攻击的事实。 SQL 注入是代码中的一个错误,数据来自哪里并不重要。