MySQL Vraag

Kan iemand mij vertellen wat er verkeerd is aan de volgende query? Ik kom er niet uit :( [code:1:c5896a4581] INSERT INTO tabel (naam1,naam2,naam3) VALUES ('waarde','waarde','waarde' . (SELECT TOP 1 waarde FROM tabel) . ' waarde') [/code:1:c5896a4581]

Het lijkt alsof de query een verwijzing naar zichzelf maakt, en daar zal PHP/MySQL vast over nekken. Wanneer je de hoogste waarde (als TOP 1 dat oplevert) uit de tabel insert in de tabel zelf, dan zit ie er twee keer in, en dan kan ie niet kiezen. Rare query dus.

[quote:b1073fa525="Vleer"]Kan iemand mij vertellen wat er verkeerd is aan de volgende query? Ik kom er niet uit :( [code:1:b1073fa525] INSERT INTO tabel (naam1,naam2,naam3) VALUES ('waarde','waarde','waarde' . (SELECT TOP 1 waarde FROM tabel) . ' waarde') [/code:1:b1073fa525][/quote:b1073fa525]

Ik ken deze syntax for MySQL niet. Moet dat niet zijn “select waarde from table limit 1”. Ik heb even met google gezocht en wat jij weergeeft is SQL server syntax.

[quote:bfdf68154b="Martiniman"]Het lijkt alsof de query een verwijzing naar zichzelf maakt, en daar zal PHP/MySQL vast over nekken. Wanneer je de hoogste waarde (als TOP 1 dat oplevert) uit de tabel insert in de tabel zelf, dan zit ie er twee keer in, en dan kan ie niet kiezen. Rare query dus.[/quote:bfdf68154b] Nee je begrijpt het verkeerd, de tabbelen en rijen hebben allemaal andere namen maar om het het duidelijker te maken (niet dus :P) heb ik alles maar 'tabel' en 'waarde' genoemt. [quote:bfdf68154b="wmstudio"]Ik ken deze syntax for MySQL niet. Moet dat niet zijn "select waarde from table limit 1". Ik heb even met google gezocht en wat jij weergeeft is SQL server syntax.[/quote:bfdf68154b] [code:1:bfdf68154b] '' . (SELECT waarde FROM tabel limit 1) . ''[/code:1:bfdf68154b] Geeft ook een error, [code:1:bfdf68154b] SELECT waarde FROM tabel limit 1[/code:1:bfdf68154b] werkt wel. Is het dus zo dat je querys niet op deze manier kan nesten?

Lijkt mij niet dat je query's kan nesten nee. Maar je kunt toch vrij eenvoudig eerst een variabele vullen met query 1, en die dan in query 2 stoppen.

[quote:4e15de3d74="wmstudio"][quote:4e15de3d74="Vleer"]Kan iemand mij vertellen wat er verkeerd is aan de volgende query? Ik kom er niet uit :( [code:1:4e15de3d74] INSERT INTO tabel (naam1,naam2,naam3) VALUES ('waarde','waarde','waarde' . (SELECT TOP 1 waarde FROM tabel) . ' waarde') [/code:1:4e15de3d74][/quote:4e15de3d74]

Ik ken deze syntax for MySQL niet. Moet dat niet zijn “select waarde from table limit 1”. Ik heb even met google gezocht en wat jij weergeeft is SQL server syntax.[/quote:4e15de3d74]

Dit zou moeten werken vanaf MySQL 4.1

INSERT INTO tabel (naam1,naam2,naam3) VALUES (‘waarde’,‘waarde’,‘waarde’ , (SELECT waarde FROM tabel LIMIT 1) , ’ waarde’)

Let op:

  1. je gebruikt “.” in de query op plaatsen waar een “,” wordt verwacht.
  2. je wil 5 waarden plaatsen in 3 velden.
  3. Als je “‘waarde’ . (SELECT TOP 1 waarde FROM tabel) . ’ waarde’” als 1 waarde wilt hanteren dan is de syntax:
    INSERT INTO tabel (naam1,naam2,naam3) VALUES (‘waarde’,‘waarde’,CONCAT(‘waarde’ , (SELECT waarde FROM tabel LIMIT 1) , ’ waarde’))

De complete documentatie voor MySQL staat online bij http://www.mysql.com

Ik dacht dat je waardes kon samen voegen met een . maar daar moet ik dus CONCAT() gebruiken. Bedankt :)

you're welcome