P Pedda Medlem sedan juni 2000 6 031 inlägg Trådstart 7 okt. 2003 15:45 #1 När jag kör en SELECT COUNT(*) för att se om namnet är upptaget så vill jag ha reda på id nummret efteråt.
Kan man få det med någon liknande funktion som mysql_insert_id()?
A aasah Medlem sedan mars 2003 4 471 inlägg Re: Hämta id vid SELECT COUNT(*)
Pedda skrev:
När jag kör en SELECT COUNT(*) för att se om namnet är upptaget så vill jag ha reda på id nummret efteråt.
Kan man få det med någon liknande funktion som mysql_insert_id()?
Va?
COUNT(*) kommer att räkna antalet rader du har i tabellen. Vad är det för idnummer du vill ha ut?
@nders Medlem sedan juni 2000 32 967 inlägg Vad menar du för ID-nummer?
Menar du; om namnet redan existerar, returnera dess id-nummer?
I så fall är den enklaste lösningen att exekvera:
SELECT id FROM tabellen WHERE namnet='kalle'
Sedan kollar du om SQL-frågan returnerar någonting, då vet du vilket ID det gäller, annars returneras ingenting och det är fritt fram.
Som sagt, jag förstår dock inte riktigt vad du menar.
Mvh
P Pedda Medlem sedan juni 2000 6 031 inlägg Förlåt om jag var lite otydlig.
COUNT(*) returner ju hur många rader som stämmer överens med frågan, då vill jag ha de radernas id alltså.
Tänkte om det fanns någon funktion att få det utan att köra SELECT efteråt, men det blir nog förmodligen till att göra det.
A aasah Medlem sedan mars 2003 4 471 inlägg
Pedda skrev:
... COUNT(*) returner ju hur många rader som stämmer överens med frågan, då vill jag ha de radernas id alltså.
...
Select id, count(*) From.....
kommer att ge de idnummer som stämmer med frågan samt ett tal som är lika för alla idnummer. Eftersom COUNT(*) ju är lika för alla rader.
Exempel:
T
id tal
1 1
2 1
3 0
4 0
5 1
Select id, count(*) from T where tal = 1; ger
id #
1 3
2 3
5 3
L LarsG Medlem sedan dec. 2000 12 464 inlägg
Select id, count(*) From.....
Den sql-satsen kommer att orsaka ett fel.
select id, (select count(*) from t where tal = 1)
from t
where tal = 1
ger det resultatet. Kräver dock 4.1 av Mysql.
I insikt Medlem sedan okt. 2003 17 inlägg Om jag förstår frågan rätt, kan du använda group by (om du har äldre version av mysql).
select id, count(id) from tal group by id
]i[
A aasah Medlem sedan mars 2003 4 471 inlägg
LarsG skrev:
Den sql-satsen kommer att orsaka ett fel.....
Oj! Det hade inte jag klart för mig! Ursäkta! Jag såg det nu när jag testade...