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 ?
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.
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
In het MySQL manual staan wel manieren om subqueries op een andere manier te schrijven.
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.
bedankt voor de handige info.. ik ga er even mee spelen
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
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..
Werkt dit ook:
SELECT kolom1, kolom2 (SELECT naam FROM namen WHERE id = kolom1) AS voornaam FROM acoounts WHERE kolom2 = 3

Reageren