夜、
私は現在、このクエリを実行しています:
SELECT `id`, `type`, `controller` FROM `urls` WHERE `url` = :url;
UPDATE `urls` SET `views` = `views` + 1 WHERE `url` = :url;
ページが読み込まれたときにこれを実行すると、ビューの列が 1 増加します。
正確な重複は見つかりませんが、MysqlPDOの「RETURNING」句の構文と同等のMysqlreturning句を使用すると、必要な答えが得られます。
returning into
MySQLには、OracleおよびPostgreSQLs句に相当するものはありません。2つの別々のステートメントを使用する必要があります。
多くの更新を行うことを期待している場合、特にクエリでビュー数を返さないため、ビューの数を別のテーブルに保持する方がよい場合があります(条件付き、そうでない場合があります)。次のようなもの:
insert into url_views values(url);
select `id`, `type`, `controller` from `urls` where `url` = :url;
次に、ビューの数が必要な場合:
select count(*)
from url_views
where url = :url
またはMySQLinsert ... select
構文を使用します。