MySQL direct INSERT INTO cu clauza WHERE (Programare, Mysql, Insert, Clauza Where)

Hasitha Shan a intrebat.
a intrebat.

Am încercat să caut pe Google pentru această problemă, dar am găsit doar cum să o fac folosind două tabele, după cum urmează,

INSERT INTO tbl_member
SELECT Field1,Field2,Field3,... 
FROM temp_table
WHERE NOT EXISTS(SELECT * 
         FROM tbl_member 
         WHERE (temp_table.Field1=tbl_member.Field1 and
               temp_table.Field2=tbl_member.Field2...etc.)
        )

Acest lucru a funcționat pentru un scenariu,Dar acum interesul meu este de a încărca datele direct din programul însuși, fără a utiliza două tabele. Ceea ce vreau este să încarc datele care nu se află în tabel. SQL-ul pe care îl aveam în minte era următorul,

INSERT INTO tbl_member (SensorIdValue, DataTimeValue, DataInValue, IncompleteValue, SpiValue, InfoValue)
VALUES ('Sensor.org', '20121017150103', 'eth0','','','')
WHERE (SensorIdValue != 'Sensor.org'AND DataTimeValue != '20121017150103'AND DataInValue != 'eth0'AND IncompleteValue != ''AND SpiValue != ''AND InfoValue != '');

Dar este greșit… pot să știu cum se face corect, vă rog, Vă mulțumesc foarte mult 🙂

Comentarii

  • Pe baza SQL-ului pe care l-ați avut în minte, se pare că doriți să inserați un rând într-un tabel dacă nu există deja. Dacă acesta este cazul, vă rugăm să aruncați o privire la această întrebare/răspuns. stackoverflow.com/questions/1361340/… -…  > Por quentinxs.
  • vizualizați această întrebare. s-ar putea să vă fie de ajutor. stackoverflow.com/questions/2930378/… – –  > Por Dev.
  • daaa, exact de asta aveam nevoie, voi verifica aceste lucruri…vă mulțumesc foarte mult pentru răspunsuri 🙂 –  > Por Hasitha Shan.
6 răspunsuri
John Woo

INSERT sintaxa nu poate avea WHERE clauză. Singura dată când veți găsi INSERT are WHERE este atunci când folosiți clauza INSERT INTO...SELECT declarație.

Prima sintaxă este deja corectă.

Comentarii

  • okey mulțumesc, voi încerca să optimizez prima interogare pentru nevoile mele 🙂 –  > Por Hasitha Shan.
  • da, cât de prost am fost, trebuia doar să apelez la același tabel în interogarea select și să îl potrivesc cu valorile dorite… 🙂 mulțumesc mult:) –  > Por Hasitha Shan.
Rj Raawat

puteți utiliza comanda UPDATE.

UPDATE table_name SET [email protected], [email protected], [email protected] WHERE [email protected]_id

utilizator1286858

Dacă înțeleg că scopul este de a insera o nouă înregistrare într-un tabel, dar dacă datele sunt deja în tabel: săriți peste! Iată răspunsul meu:

INSERT INTO tbl_member 
(Field1,Field2,Field3,...) 
SELECT a.Field1,a.Field2,a.Field3,... 
FROM (SELECT Field1 = [NewValueField1], Field2 = [NewValueField2], Field3 = [NewValueField3], ...) AS a 
LEFT JOIN tbl_member AS b 
ON a.Field1 = b.Field1 
WHERE b.Field1 IS NULL

Înregistrarea care urmează să fie inserată se află în câmpurile cu valoare nouă.

Pomster

Exemplu de realizare a unui INSERT INTO SELECT cu o clauză WHERE.

INSERT INTO #test2 (id) SELECT id FROM #test1 WHERE id > 2

Comentarii

  • Se explică de la sine. Acesta este un exemplu pentru a arăta că se poate face INSERT INTO cu o clauză WHERE. este un exemplu foarte simplu în care oricine ar trebui să poată înțelege conceptul. –  > Por Pomster.
  • Votul de jos nu este al meu, îmi place să comentez în schimb. După cum vedeți, alții nu sunt de acord. Am găsit postarea ta în postările de calitate scăzută, așa că îți sugeram să o îmbunătățești. –  > Por Rohit Gupta.
  • Mișto, ei bine, am de gând să o las sus chiar și cu votul negativ, deoarece cred că ar putea ajuta pe cineva mai târziu. –  > Por Pomster.
Madhuraank B

INSERT sintaxa nu poate avea WHERE dar puteți folosi UPDATE.

Sintaxa este după cum urmează:

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;

hoang nguyen

Instrucțiunea INSERT INTO
Instrucțiunea INSERT INTO este utilizată pentru a introduce un nou rând într-un tabel.
Sintaxa SQL INSERT INTO

Este posibil să se scrie instrucțiunea INSERT INTOTO în două forme.

Prima formă nu specifică numele coloanelor în care vor fi inserate datele, ci doar valorile acestora:

INSERT INTO table_name
VALUES (value1, value2, value3,...)

A doua formă specifică atât numele coloanelor, cât și valorile care vor fi inserate:

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

Comentarii

  • vă mulțumesc pentru răspuns, dar am vrut să efectuez o instrucțiune „INSERT INTO” condiționată 🙂 –  > Por Hasitha Shan.