[mysql] update / select newbie vraag

Pagina: 1
Acties:

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
ik heb een temp table die 4 scores bevat (1 kolom, 4 waarden, niets meer), de inhoud van die table moet in een andere table komen met meerdere kolommen. Ik weet dat de eerste waarde bij een bepaalde persoon hoort etc. (in mijn voorbeeld sjonnie)

Dus wat ik wil is de bestande table updaten met de waarden uit de temp table.
Ik moet hiervoor een aantal dingen weten, alleer eerst hoe ik de eerste waarde van een kolom kan selecteren.
En ten tweede hoe ik die waarde in mijn bestaande table kan gooien.


Iets in de zin van:
update blaat set score=select *** from temp where name='sjonnie';
of
insert into blaat.score where name='sjonnie' select *** from temp;

(*** = de eerste waarde van de temp table)

...


  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Oeps, geplaats in DPC ipv P&W heb al verzocht om verplaatsing in SU.

...


Verwijderd

moved DPC >> P&W

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

neem aan dat je een rij met vier kolommen bedoeld ?
code:
1
2
3
TempTabel:
Veld1 | Veld2 | Veld3 | Veld 4
  8  7   6   5

dan is 't SELECT Veld1 FROM TempTabel

zie ook INSERT SELECT

dan zou 't dus
INSERT INTO Tabel2 (VeldID) SELECT TempTabel.Veld1 .....

o.i.d. worden.
Je kan beter ff de definitie van de bron en doel tabel posten, is wat makkelijker imho
Je kan 't natuurlijk ook met een stukje php code oplossen :P

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Nee het was geen temp tabel met 4 kolommen, het was 1 kolom met 4 rijen, anders was het inderdaad geen probleem geweest.

Maar laat ik het anders zeggen, misschien dat het anders opgelost kan worden. Ik heb een bestandje (blaat.txt) waarin die 4 waarden die ik heb genoemd onder elkaar staan. Dat bestandje wordt automatisch geupdate en ik wil die waarden in een tabel opslaan. Ik weet welke getallen wat voorsteld maar heb geen idee hoe ik een bescrijving erbij kan geven. Ik wil die data in dat bestand dus in de tabel gooien, voordien van een date en een omschrijving (naam), deze table heet blaat en ziet er zo uit:
create table blaat (date date, name (varchar(20), score);

Dus toen dacht ik het zo op te lossen:
code:
1
2
3
4
5
6
7
8
drop if exists table temp;
create temp (score int);
load data infile "/home/blaat.txt" into temp;

insert into table blaat values ("1970-01-01","henk","0");
insert into table blaat values ("1970-01-01","sjon","0");
insert into table blaat values ("1970-01-01","paulus","0");
insert into table blaat values ("1970-01-01","leo","0");

En dan wil ik dus iets doen van
code:
1
update blaat set score=(***) where name='henk' and date='1970-01-01';

En dan bedoel ik met die (***) de selectie procesdure om de eerste te selecteren uit de temp table. En dat voor alle namen.
En daarna een andere update:
code:
1
update blaat set date=current_date where date='1970-01-01';

...


  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
^schop^

...


  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Goed het weekend is voorbij, nu hier weer wat meer mensen rond hangen probeer ik het nog een keer want ik ben er nog niet uit.

...


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Heb je nog 1 of andere manier waardoor die 4 scores uit elkaar te houden zijn, of horen ze niet onderling onderscheidbaar te zijn?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Ik kan wel een scriptje bouwen die ze ipv de 4 getallen onder elkaar dat ik voor iedere waarde ze in een aparte file zet. dat ik dus 4 files heb met ieder een van de waarden erin.

...


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Dit zal nooit gaan werken. Zodra je in een tabel insert ben je de volgorde van de records kwijt. Er is dus geen eerste meer.
Die volgorde afhankelijkheid zal je moeten tackelen bij het inlezen in de temp tabel.
Je zal je bestand dus moeten uitbreiden met de naam gegevens.
Misschien kan het inlees programma ook iets als een volgnummer (auto_increment kolom in temp?) doen om de volgorde vast te leggen.

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Oh jezus dat ik daar niet aan heb gedacht, ik zat wel te denken aan een oplossing om vor het eerste getal een naam te zetten maar om ze te nummeren had ik nog niet aan gedacht |:(

Dus cat -n blaat.txt > blaat.txt

...


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op maandag 21 januari 2002 12:42 schreef Haranaka het volgende:
Oh jezus .....
[...]
Ik weet het, het was bijna God-like, maar om me nu direct Jezus te noemen, is te veel eer ;)
Pagina: 1