11. oktober 2002 - 10:51
Der er
11 kommentarer og 1 løsning
select max(userId)
Jeg har i postgresql skrevet update areaId set areaId = (select max(areaId) from areaId) + 1 men dette må jeg ikke skrive i mysql - Hvordan kan jeg lave dette kald??
Annonceindlæg fra Pointsharp
11. oktober 2002 - 10:56
#1
fordi mysql ikke understøtter.. erhm - hvad hedder det nu... ja, så du ikke kan lave en sql inde i en sql, og det er det du gør ved både at have en update og en select i samme sætning. du er derfor nødt til at splitte den op i to sql'er
11. oktober 2002 - 10:56
#2
Hvad er det lige du skal bruge det til? Du har jo igen WHERE dek på så du opdatere alle rækker til de højeste id +1. Ingen subselects i MySQL så du skal lave det i 2 quries. Men prøv lige at forklare i hvilket sammenhæng - måske er der igen anden løsning.
11. oktober 2002 - 10:59
#3
det var et uddrag af en sql... OK - Man kan altså ikke bruge nestede sql-kald - Jeg har en db med id's til en anden db dvs. den ene db bruges når man skal bruge et nyt id når man vil indsætte i den anden.
11. oktober 2002 - 11:03
#4
SELECT &nyt:=areaId FROM areaId; INSERT INTO areaId (areaId) VALUES &nyt;
11. oktober 2002 - 11:04
#5
Desværre mangler MySQL en masse af disse smarte features. Derfor bliver du nød til at lave to queries til databasen, eller skifte database.
11. oktober 2002 - 11:13
#6
proaccess:: Det kunne jeg så overhovedet ikke få til at virke...
11. oktober 2002 - 11:18
#7
I MySQL version 4.1 kommer der understøttelse af nestede subquerys! I kan evt prøve beta versionen af 4'eren.
11. oktober 2002 - 11:21
#8
det kode proaccess har postet er heller ikke korrekt sql syntax, det ligner noget fra pascal.
11. oktober 2002 - 11:23
#9
Undskyld, det skulle være snabel-a SELECT @nyt:=areaId FROM areaId; INSERT INTO areaId (areaId) VALUES @nyt; >Disky: MySQL laver User-variables på den måde... ;0)
11. oktober 2002 - 11:23
#10
Det er det jeg mener... Den virker ikke når jeg skriver mysql - enter og så prøver at skrive koden... Hvis mysql 4.1 var her nu ville det være kanon!! Men det er den ikke (Kun derfor henter jeg nu 600 mb db2 trial)
11. oktober 2002 - 11:26
#11
Skal vel egentlig være... SELECT @nyt:=areaId FROM areaId; INSERT INTO areaId (areaId) VALUES (@nyt + 1); for at lægge een til...
11. oktober 2002 - 12:00
#12
Det skal lige testes - Mandag...
Computerworld tilbyder specialiserede kurser i database-management