2011-08-23 3 views
1

24時間以上登録されているすべての非アクティブアカウントの削除に関する質問があります。私はMSSQLを使用しています。すべての非アクティブアカウントの削除

データベースのセットアップ:

account | usrActivated | regTime 
test   0   1314223187 

SQLクエリ:

$time = 24 * (60 * 60); 
DROP FROM ACCOUNT_TBL_DETAIL WHERE usrActivated=0 AND regTime < $time 

うこの作品、私はこのようなクエリを実行すると? 24時間以上経過している非アクティブ化されたアカウントを削除する。

+1

まずSELECTで試してみませんか? –

+1

ネイティブのSQL Serverの 'DATE'型の代わりに日付をunixタイムスタンプとして格納する特別な理由は何ですか? – NullUserException

+0

理由はありません。私は何をすべきか分かりませんでした。 – SilentCoder

答えて

4
delete from ACCOUNT_TBL_DETAIL 
where usrActivated=0 AND regTime <= UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 1 DAY)); 

あなたがMySQLを使用していると仮定します。

dropは、データベースからテーブルを削除するためのものです。 deleteは、テーブルからレコードを削除するためのものです。

+0

申し訳ありませんが削除私は削除を意味します。私はSQL ServerのようにMSSQLを使用しています。私はNow()がMSSQLの関数だとは思わない。 – SilentCoder

+0

@Silent - SQL Serverの場合、 'regTime <= DATEADD(DAY、-1、GETDATE())' –

+0

を使用することができます@Martinしかし、それはあなたに日付を与えます。unixタイムスタンプではありません – NullUserException

1

これはあなたが表現したようなものではありません。何も削除されないためです。とにかく、1970年に作成されたアカウントがない限り。これを試してみてください:

DELETE FROM ACCOUNT_TBL_DETAIL 
WHERE usrActivated = 0 
    AND regTime < UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY) 

が、これは何をしたいんことを確認する(SELECT *DELETEを置き換える)テスト実行を行うことを忘れないでください。

+0

Now()はMSSQLの関数ではありません。私は推測しています。 – SilentCoder

+0

MSSQLを指定していないので、どうやってそれを知ることができましたか? – cdhowie

+0

それは他の方法でごめんなさい申し訳ありません?おそらく – SilentCoder

0

懐疑的ではありませんが、実際にこのSQLを実行する前に1秒間に登録した人物を削除する可能性があります。彼はActivatingの途中にいるかもしれません。

+0

(usrActivated = 0)は登録していない人を示します。ちょっと前に登録した人物を削除してしまいます(しかしまだ起動していません)。 – Arun

+0

これは、データベースをきれいにしてスパムでいっぱいにしておくためのポイントです。登録後にアカウントを有効にしないと、アカウントは削除されます。 – SilentCoder

+0

私は午後11時59分に登録し、より良いものを見るためにチャンネルをブラウズしてみましょう。削除スクリプトは、午前12時に開始されます(登録を開始してから1分後)。私は最終的にジミー・ファロンと共に深夜を見ることに決めました。私は登録を完了するために戻っています - 活性化しようとします。その後何が起こるでしょうか? – Arun

0

私は、午後11時59分に登録し、チャネルを参照して の方が良いと見てみましょう。削除スクリプトは、午前12時に起きます( から登録し始めて1分後)。私はついにジミーと夜遅くを見ることに決めた ファロン。私は登録を完了するために戻っています - 活性化しようとします。 それからどうなりますか? - Arun Aug 24 '11 at 15:50

個別に非アクティブ化された場所を削除することができます。登録してから1日だけではなく、おそらく3日間ですか?または長い間あなたがしたい。しかし、サイト全体で3日ごとにスクリプトが実行されるようなことはありません。それはただひとりの人に過ぎません。複数のユーザーが同時にサインアップしない限り、スクリプトが起動する唯一の時間になります。あなたの質問に答えることを願っています。

関連する問題