AMcoder - javascript, python, java, html, php, sql

ԹԱՐՄԱՑՈՒՄ ՈՒՆԵՑՈՂ կետով հաշվարկված

Ես փորձում եմ կատարել թարմացված հայտարարություն՝ հիմնված ընտրության վրա, որն օգտագործում է HAVING կետ և հաշվարկված դաշտ MySQL-ում: Իմ ընտրությունն է.

SELECT FLOOR( IF( file_real_id, file_real_id, file_id ) /5000 ) AS fldrid, file_id
FROM Files
WHERE srv_id =2
HAVING fldrid =0

Այժմ ես ցանկանում եմ թարմացնել վերը նշված file_id-ի հետ նույնացված բոլոր գրառումները և սահմանել դրանց srv_id-ը 3: Ըստ էության

UPDATE Files SET srv_id = 3 
[for all records identified with their file_id in the above SELECT]

Ես փորձեցի բոլոր պատասխանները, որոնք առաջարկվել էին Օգտագործելով HAVING կետը UPDATE հայտարարության մեջ բայց ես չեմ կարող նրանցից որևէ մեկը աշխատել առանց MySQL սխալների:

Ստորև բերված մեկնաբանության համար, ահա ներքին միացման փորձը:

update f1 set
srv_id=3
from
Files f1 
inner join (
    SELECT file_id,
    FROM Files
    WHERE srv_id =2
    HAVING FLOOR( IF( file_real_id, file_real_id, file_id ) /5000 )=1
    ) f2 on
f1.file_id = f2.file_id;

Սա հետևում էր ավելի վաղ հղման առաջարկին, բայց ունի շարահյուսական սխալներ: Մյուսն էր.

UPDATE Files SET Srv_id = 3 Where file_id IN (
SELECT file_id,
FROM Files
WHERE srv_id =2
HAVING FLOOR( IF( file_real_id, file_real_id, file_id ) /5000 )=1))

  • Տեղադրեք ձեր լավագույն փորձը (նույնիսկ եթե այն չի աշխատում): 15.11.2013

Պատասխանները:


1

Փորձեք կամ

UPDATE files f JOIN
(
  SELECT file_id,
    FROM files
   WHERE srv_id =2
  HAVING FLOOR(IF(file_real_id, file_real_id, file_id) / 5000) = 1
) q ON f.file_id = q.file_id
   SET srv_id = 3;

or

UPDATE files 
   SET srv_id = 3 
 WHERE file_id IN 
(
  SELECT file_id
    FROM
  (
    SELECT file_id,
      FROM files
     WHERE srv_id =2
    HAVING FLOOR(IF(file_real_id, file_real_id, file_id) / 5000) = 1
  ) q
);
15.11.2013
  • @OldTimerRestarting Օգնե՞ց: Ձեր հարցի հետ կապված ավելի շատ օգնության կարիք ունե՞ք: 18.11.2013
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..