Добрый день! Непонятно ведет себя один и тот же запрос Mysql. 1) Если я его выполняю через утилиту mysql: mysql> SELECT * from power_pump1_arc where (Time between '2024-02-14 08:08:00' and '2024-02-14 08:18:00') or (Time=(SELECT MAX(Time) from power_pump1_arc where Time<'2024-02-14 08:08:00')); то он выдает результат: +--------+---------------------+ | Status | Time | +--------+---------------------+ | 0 | 2024-02-14 08:07:09 | | 1 | 2024-02-14 08:10:23 | | 0 | 2024-02-14 08:15:36 | +--------+---------------------+ 3 rows in set (0.00 sec) 2) Если же я использую php: $query = "SELECT * from power_pump1_arc where (Time between '$datetimebegin' and '$datetimeend') or (Time=(SELECT MAX(Time) from power_pump1_arc where Time<'$datetimebegin'))"; $file = 'log.txt'; file_put_contents($file, $query."\n", FILE_APPEND | LOCK_EX); $result = mysqli_query($dbCon, $query); $cust = mysqli_fetch_array($result); $Graphs = array(); $i=0; while($r = mysqli_fetch_assoc($result)) { $Graphs[] = $r; file_put_contents($file, $r["Time"]." ".$r["Status"]."\n", FILE_APPEND | LOCK_EX); $i++; } то в файл 'log.txt' записывается другой результат, на одну запись меньше. SELECT * from power_pump1_arc where (Time between '2024-02-14 08:08:00' and '2024-02-14 08:18:00') or (Time=(SELECT MAX(Time) from power_pump1_arc where Time<'2024-02-14 08:08:00')) 2024-02-14 08:10:23 1 2024-02-14 08:15:36 0 Вложенный подзапрос не отрабатывает. В чем причина такого разного поведения?
Путем сокращения запроса понял, что функция "MAX" не работает в PHP, но работает в утилите mysql.exe... Почему?
Добрый день! Ошибка в коде PHP: $cust = mysqli_fetch_array($result); // нужно удалить Здесь выбирается первая запись, которая не попадает в log.txt Удачи!