query

Overzicht Reageren

The Beeding Clown

The Beeding Clown

27/07/2006 17:16:00
Quote Anchor link
Ik geloof dat het mogelijk is query's in query's te runnen, nu heb ik het volgende maar het werkt niet :(

"UPDATE counter SET num='(num + (SELECT num FROM counter WHERE id=1))' WHERE id=2"

iemand ?
 
PHP hulp

PHP hulp

11/08/2022 22:58:45
 
Frank -

Frank -

27/07/2006 17:19:00
Quote Anchor link
Welke foutmelding krijg je? En waarom maak je van de subquery een string? Je zet hem tussen quotes, de kolom 'num' zal de dus waarde (num + (SELECT num FROM counter WHERE id=1)) krijgen. Dat is wat anders dan het resultaat van deze query.

Let op: Oudere versies (< 4.1) van MySQL kennen geen subqueryies.
 
The Beeding Clown

The Beeding Clown

27/07/2006 17:26:00
Quote Anchor link
Mysql versie is 4.0.24, gaat dan niet werken?

Zonder de quotes de volgende error (met quotes kreeg ik er geen)

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT num FROM counter WHERE id=1)) WHERE id=2' at line 1
Gewijzigd op 01/01/1970 01:00:00 door The Beeding Clown
 
Jan Koehoorn

Jan Koehoorn

27/07/2006 17:29:00
Quote Anchor link
In het MySQL manual staan wel manieren om subqueries op een andere manier te schrijven.
 
Frank -

Frank -

27/07/2006 17:30:00
Quote Anchor link
Dat gaat niet werken met 4.0.24, zie de handleiding.
 
The Beeding Clown

The Beeding Clown

27/07/2006 17:32:00
Quote Anchor link
Bedankt voor de reacties.

@jan
Hoe zou ik de query op moeten bouwen voor de <4.1 versies van mysql?

Ik ga de handleiding ook even op mijn gemak doorlezen zodra ik er de tijd voor heb.
Gewijzigd op 01/01/1970 01:00:00 door The Beeding Clown
 
Jan Koehoorn

Jan Koehoorn

27/07/2006 17:33:00
Quote Anchor link
Het enige dat misschien helpt is deze pagina in de handleiding
 
The Beeding Clown

The Beeding Clown

27/07/2006 17:40:00
Quote Anchor link
bedankt voor de handige info.. ik ga er even mee spelen
 
Jan Koehoorn

Jan Koehoorn

27/07/2006 17:51:00
Quote Anchor link
Ter aanvulling: ik denk dat je door je MySQL versie niet om twee queries heen komt. Het omschrijven gaat alleen bij SELECT queries zo te zien.

Dus eerst een SELECT query om de goede waarde van num op te halen:

SELECT num AS ophoogwaarde
FROM counter
WHERE id = 1

Dan een UPDATE query om de juiste waarde in je tabel te verhogen:

UPDATE counter
SET num = num + ophoogwaarde
WHERE id = 2
 
The Beeding Clown

The Beeding Clown

28/07/2006 11:21:00
Quote Anchor link
Je hebt gelijk jan, ik heb gister nog zitten klooien maar het ging idd niet met de UPDATE, heb het met meerdere query's gedaan. Werkt zoals verwacht prima. Zonde van die extra query, maarja..
Gewijzigd op 01/01/1970 01:00:00 door The Beeding Clown
 
- -

- -

28/07/2006 11:27:00
Quote Anchor link
Werkt dit ook:
SELECT kolom1, kolom2 (SELECT naam FROM namen WHERE id = kolom1) AS voornaam FROM acoounts WHERE kolom2 = 3
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.