0
$query = "SELECT loved FROM users WHERE uid=:quitter";
$query = "UPDATE users SET status='0', loved=NULL, beloved_count='0' WHERE uid=:deceased";
$query = "UPDATE users SET beloved_count=beloved_count-1 WHERE uid=:lover";

私のコードからは明確ではないかもしれないので、何が起こっているのかを以下に示します:
ユーザー 123 が終了します。
1) 123 が「愛した」人を見つける2) 123 の行を更新する
(status='0' を設定するなど)
3) 「愛された」ユーザーの行を更新し、「beloved_count」を 1 減らす

これはすべて 1 つのテーブル内で行われます。これは 1 つのクエリで発生する可能性がありますか? 理想的には、1 つのクエリで実行したいのですが、3 つの個別のクエリを使用するよりも 2 つでも良いでしょう。

私はJOINs を見てきましたが、以前に使用したことがないため、単純にわかりません。クエリの組み合わせの例を見てきましたが、これを反映するものはありません。PHP 5.4 と PDO を使用しています。


何かのようなもの:

$query = "UPDATE users SET status='0', loved=NULL, beloved_count='0' WHERE uid=:deceased;  
    UPDATE users SET beloved_count=beloved_count-1 WHERE uid=:lover;";
4

1 に答える 1

0

おそらくこのようなものですか?基本的に、あなたは彼が愛したすべてのユーザーにユーザーを終了させて​​います。

UPDATE 
    users AS u1, 
    users AS u2 
SET 
    u1.status='0',
    u1.loved=NULL,
    u1.beloved_count='0',
    u2.beloved_count=u2.beloved_count-1
WHERE 
    u1.uid=:quitter
    AND u1.loved=u2.uid;
于 2013-04-26T22:57:08.957 に答える