2016-06-16 7 views
0

私はそこにクーポン用のテーブルを持っています。すでに多くのデータが挿入されています。 1人のユーザーがそのテーブルに加入すると、そのテーブルが更新され、そのクーポンがユーザーに割り当てられます。日付ごとに50個のレコードを更新するmysql

ID  coupon  user   created  Instance 
1   xxxx  [email protected] 2016-06-15  1 
2   xxxx  [email protected] 2016-06-15  1 
3   xxxx  [email protected] 2016-06-15  1 
4   xxxx  [email protected] 2016-06-15  1 
5   xxxx      0000-00-00  0 
6   xxxx      0000-00-00  0 
7   xxxx      0000-00-00  0 

ユーザーがユーザーのメールと日付を加入している場合が作成され、インスタンスが1に変更された私は、クエリでこの状態を確認することができますどのように一日あたりわずか50のユーザーを更新したいですか?

+0

'クーポン'はユニークフィールドですか、同じクーポンIDが2回ある可能性がありますか? –

+0

のクーポンのフィールドはランダムな文字なので、同じクーポン – Nawin

+0

には繰り返しません。どのクーポンを更新するか(電子メールかクーポンかIDか)をどのようにして識別しますか?電子メールが空でインスタンスが0で、その新しいユーザーの電子メールに割り当てられている場合は –

答えて

1

このようなクエリを使用できます。 実行後、mysqli_affected_rowsで変更する行数をテストできます。

UPDATE yourTable 
    SET `Instance` = 1 
    , `USER` = 'theEmail' 
    , `created` = now() 
WHERE 
    id = (SELECT `id` FROM yourTable WHERE `Instance` = 0 AND `USER` IS NULL LIMIT 1) 
AND 
50 > (SELECT COUNT(*) FROM yourTable WHERE `created` = NOW()); 
+0

実際には素晴らしいことですが、疑問がもう1つあります。私はこの条件を使用して2つのページをリダイレクトしたい場合は、50ページ以内にリダイレクトすると他のページに感謝の意を表します。 UPDATEクエリの後の – Nawin

+0

は、変更されるレコードの数を調べるためにmysqli_affected_rowsを使用します。もし1ならば、それは0を更新しました - >ごめんなさい。 –

+0

実行中です。あなたのTime @ Bernd Buffenに感謝します。 – Nawin

関連する問題