Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql връща резултати от актуализация

Бих създал проста функция:

DELIMITER $$

DROP FUNCTION IF EXISTS `mydb`.`updateMytable`$$

CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    FUNCTION `mydb`.`updateMytable`() RETURNS TEXT 

    BEGIN

        SET @updated := '';

        UPDATE mytable
            SET viewed = 1
        WHERE viewed = 0
            AND ( 
                SELECT @updated := CONCAT_WS(',', @updated, id) 
            ) != ''
        ;

        RETURN TRIM(LEADING ',' FROM @updated); 

    END$$
DELIMITER ;

който актуализира таблици и връща свързани идентификатори.

От php извиквате това:

SELECT mydb.updateMytable()

и получавате идентификатори в стринг:1,2,7,54,132 и т.н...

Актуализация:

моята функция връща низ, съдържащ идентификатори, разделени със запетая:'1,5,7,52,...' тези идентификатори са само тези, които биха били актуализирани по време на извикването на функцията,

по-добър пример за php-mysql би бил (можете и бихте използвали PDO):

$query = "SELECT mydb.updateMytable()";
$res = mysql_query($query);
$arr = mysql_fetch_array($res);

$ids = explode(',', $arr[0]);

// now you can do whatever you want to do with ids
foreach ($ids as $id) 
{
    echo "Hoorah: updated $id\n";
}

също не забравяйте да промените mydb и mytable според имената на вашата база данни

Окончателно

тъй като имате нужда от по-сложна функционалност, просто изпълнете две заявки:

Първо изпълнение:

SELECT a, b, c
FROM mytable
WHERE viewed = 0

Следващо изпълнение:

UPDATE mytable 
    SET viewed = 1 
WHERE viewed = 0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP превръща запетаята в <br />

  2. MySQL конектор за C++ | Изключение на MySQL_Connection::setReadOnly() на setSchema

  3. Релевантността на пълнотекстово търсене се измерва в?

  4. Ако използвам оператор IN за филтриране на NULL стойности и бели интервали Не работи Защо?

  5. Неизползваните mysql връзки забавят ли скриптовете?