2

夜、

私は現在、このクエリを実行しています:

SELECT `id`, `type`, `controller` FROM `urls` WHERE `url` = :url;
UPDATE `urls` SET `views` = `views` + 1 WHERE `url` = :url;

ページが読み込まれたときにこれを実行すると、ビューの列が 1 増加します。

4

1 に答える 1

2

正確な重複は見つかりませんが、MysqlPDOの「RETURNING」句の構文と同等のMysqlreturning句を使用すると、必要な答えが得られます。

returning intoMySQLには、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構文を使用します。

于 2012-05-18T06:10:51.267 に答える