求一句UPDATE語句

WBOY
發布: 2016-08-04 09:22:11
原創
1468 人瀏覽過

<code>table_user

id            user            shangjiaid         vip
1           用户A            2                    0
2           用户B            3                    0
3           用户C            2                    0
4           用户D            5                    0
5           用户E            5                    0
6           用户F            5                    0
7           用户G            2                    0
8           用户H            5                    0
9           用户J            2                    0
10          用户K            5                    0
11          用户K            5                    0
12          用户K            7                    0
13          用户K            12                    0


更新VIP等于1


比如 id=5的这个人  下家的数量满足3个  然后更新vip=1

用一句sql能update更新?  这个应该属于递归...



就是说每个人都有上家...如果这个人下家满足3个人..然后更新VIP=1


update结果集

table_user

id            user            shangjiaid         vip
5           用户E            5                    1
2           用户B            3                    1</code>
登入後複製
登入後複製

回覆內容:

<code>table_user

id            user            shangjiaid         vip
1           用户A            2                    0
2           用户B            3                    0
3           用户C            2                    0
4           用户D            5                    0
5           用户E            5                    0
6           用户F            5                    0
7           用户G            2                    0
8           用户H            5                    0
9           用户J            2                    0
10          用户K            5                    0
11          用户K            5                    0
12          用户K            7                    0
13          用户K            12                    0


更新VIP等于1


比如 id=5的这个人  下家的数量满足3个  然后更新vip=1

用一句sql能update更新?  这个应该属于递归...



就是说每个人都有上家...如果这个人下家满足3个人..然后更新VIP=1


update结果集

table_user

id            user            shangjiaid         vip
5           用户E            5                    1
2           用户B            3                    1</code>
登入後複製
登入後複製

update table_user set vip = 1 where id in (select * from (SELECT a.shangjiaid FROM table_user as a GROUP BY a.shangjiaid having count(1) >= 3) as b) 感覺應該還有更優解吧。 。

另外給個建議,LZ以後提問的時候最好能把建表語句和資料填充語句貼上來,這樣會省很多時間。也許會有更多答案。

update table set vip=1 where id=(select shangjiaid from (select

from table group by shangjiaid having count(

)>2)t ) 大概是這個思路,sql可能不對,你自己看看

這種複雜的語句你可以分開,這種複雜的一步完成的sql語句在我看來並不好,遇到數據量大的時候業務就會特別卡。

你可以先統計哪些id 的商家id下家數量大於3,在分別更新vip為1;實在不行也可以的加一個隊列,這樣對業務應該會好一點。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板