webForumDet fria alternativet

Sökning i tabell

4 svar · 201 visningar · startad av Insider

InsiderMedlem sedan jan. 2000978 inlägg
#1

Jag har en tabell, bl.a med fältet 'lang'. Varje rad i tabellen motsvarar en person. Ett annat fält är 'Namn'.

'lang' är ett text fält.
Det kan t.ex stå: "franska, italienska tyska och ryska", som en sträng.

Jag vill kunna göra en sökning på vilka personer som kan ett visst språk och visa namnet ur 'namn'-fältet.
(Det kommer max att finnas 150 rader i tabellen)

Hur ska SQL-uttrycket se ut?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Så designar man inte en databas. Lägg lang i en egen tabell och lagra ett språk som en post.

Med din nuvarande design

select count(*) from t where ',' || lang || ',' like '%,ryska,%'

Man måste ta med , på varje sida annars så kan man inte skilja på t.ex ryska och vitryska.

Hur du gör konkatenering skiljer sig mellan olika DBMS.

InsiderMedlem sedan jan. 2000978 inlägg
#3

Jag ska ha ett inmatningsformulär där personer kan gå in och fylla i vilka språk dom kan. (m.m)

Måste man inte ha en koppling så men vet vilka personer som kan vilka språk?? Typ ha en rad för varje person och språk i tabellen???

Vad har count(*) med saken att göra?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det var jag som läste fel, jag fick för mig att det stod: Hur många som kan ett språk.

select * from t where ',' || lang || ',' like '%,ryska,%'

Om man tar den nya designen så behövs det en koppling såtillvida att man lagrar en foreign key till person-tabellen i språktabellen.

InsiderMedlem sedan jan. 2000978 inlägg
#5

Men med det SQL-uttrycket måste jag väl inte ha lang i en egen tabell?

Men det kanske ändå är bäst.
Jag förstod inte riktigt hur förhållandet skulle se ut. Jag kör access 2000.
Hur kan databasen veta vilka språk som talas av vilka personer om jag har en främmande nyckel?

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)