2009年7月 6日

[mysql 14963] Re: 複雑なdeleteの書き方

柳本さん

ありがとうございます。
ERROR 1093 (HY000):You can't specify target table 'test' for update in
FROM clause
となっております。
サブクエリは無理!といわれているっぽいです。
1文では不可能なのでしょうか?

無理な場合はストアドかPerlなどのプログラムから実行します。

> 柳本です。
>
> delete from [テーブル名]
> where user_id in (
> select user_id from [テーブル名]
> where page_id = 1
> and created + cast('7 days' as interval) > now()
> )
>
> こうですか?わかりません><
>
> tysmk さんは書きました:
>> お世話になっております。
>>
>> 以下のようなテーブルがあったと仮定します。
>>
>> id int auto_increment,
>> user_id int,
>> page_id int,
>> created date,
>> primary key(id),
>> unique key(user_id,member_id,page_id)
>>
>> このテーブルから
>> page_id=1 and created+ intarval 7 day > now()
>> がtrueの場合、該当するuser_idのすべてを削除したいのですがどのように書け
>> ばいいでしょうか?
>>
>> わかりやすく書くと舌のようにデータが入っていた場合、消えるのは
>> id = 1 and id = 4
>> になります。
>>
>> id user_id page_id created
>> 1 1 1 2009-06-15
>> 2 2 3 2009-07-05
>> 3 2 1 2009-07-05
>> 4 1 2 2009-07-05
>>
>>
>> ご教示お願いいたします。
>>
>
>
>
>

投稿者 xml-rpc : 2009年7月 6日 18:14
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86425
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。