Heim > Artikel > Backend-Entwicklung > Fordern Sie eine UPDATE-Anweisung an
<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)
Es fühlt sich an, als ob es eine bessere Lösung geben sollte. .
Ein weiterer Vorschlag ist, dass es am besten ist, wenn Liz in Zukunft Fragen stellt, die Anweisungen zur Tabellenerstellung und zum Ausfüllen von Daten zu veröffentlichen. Dies spart viel Zeit. Vielleicht gibt es noch mehr Antworten.
Update table set vip=1 where id=(select shangjiaid from (select from table group by shangjiaid with count()>2)t ) Dies ist wahrscheinlich die Idee, die SQL ist möglicherweise falsch , Sieh mal rein
Diese komplexe SQL-Anweisung kann meiner Meinung nach nicht in einem Schritt ausgeführt werden, wenn die Datenmenge groß ist.
Sie können zunächst zählen, welche IDs mehr als 3 Händler-IDs haben, und dann den VIP auf jeweils 1 aktualisieren. Wenn dies nicht möglich ist, können Sie auch eine Warteschlange hinzufügen, was für das Unternehmen besser sein sollte.