Select и Update В одном запросе MySQL

Требуется вывести данные status='unread' и сразу же обновить их на 'read'. Что я делаю не правильно?

    <?php 
       $host = 'localhost'; // адрес сервера
       $db_name = ''; // имя базы данных
       $user = ''; // имя пользователя
       $password = ''; // пароль
    
       // создание подключения к базе   
          $connection = mysqli_connect($host, $user, $password, $db_name);
    
       // текст SQL запроса, который будет передан базе
          $query = "SELECT id,status,text_user s1 FROM datas WHERE status='unread'; UPDATE datas s2 SET status='read' WHERE s1.id=s2.id";
       // выполняем запрос к базе данных
          $result = mysqli_query($connection, $query);
    
       // выводим полученные данные
          while($row = $result->fetch_assoc()){
             echo  $row['status'];
          }
    
       // закрываем соединение с базой
          mysqli_close($connection);
    ?>

Ответы (1 шт):

Автор решения: Andrew Nikolaev
CREATE TABLE temp_result (id INT);
INSERT temp_result (id)
SELECT id FROM datas WHERE status =‘unread’;
SELECT * FROM datas d
  INNER JOIN temp_result tr ON tr.id = d.id;
UPDATE datas SET status=‘read’ WHERE id IN (SELECT id FROM temp_result);
DROP TABLE temp_result;

Необходимо сохранять промежуточный результат.

→ Ссылка