MySQLクエリに関する質問があります。私は(明らかに)可能な限り少ない数のクエリを使用したいと思います。うまくいけば1つだけです。私がしようとしているのは、情報が異なる場合、データベースの列を更新することです。フィールドが異なるところのMySQLアップデート
たとえば、「referer」列と「date」列があるとします。ユーザーがリンクをクリックしてリファラーが異なるが日付が同じ場合、リファラー列のみを更新したいと思います。
これが私の現在のクエリです:
mysql_query ("
UPDATE clicks
SET
clicks = clicks + 1
, referers = CONCAT(referers, ',$referer')
, dates = CONCAT(dates, ',$date')
WHERE shortURL = '$url'
AND referer != $referer
");
は1つのクエリにこれを動作させる方法はありますか?
クエリとは別に、日付が同じであることは不可能です。時間は実行中です! –
なぜ 'referers'と' dates'カラムに複数の値を格納していますか?これは非効率的です。なぜなら、これらの列は、多数のクリック数を持つページに対して膨大な文字列を保持するからです。また、特定の日付のトップ参照者または最もクリックされたページを把握することを非常に困難にします。 –
クリックごとに新しい行を作成する方が効率的でしょうか? – Lukas