Hämta ett värde i en array med sql?

Databaser & SQL

9 svar · 521 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Trådstart#1

Om jag har ett fält i min db som innehåller en array (exempelvis 10,20,30,40). Hur gör jag för att hämta exempelvis värdet "30" direkt i min sql-sats (sql-server)?

Medlem sedan juni 200032 967 inlägg
#2

Menar du att du lagrar en kommaseparerad lista med värden i ett fält?
Vad är det du lagrar? Och varför?

Medlem sedan sep. 2005673 inlägg
#3

Jupps. Jag kan inte ändra på produkten och jag har ingen möjlighet att köra kod heller så sql är enda sättet! Har labbat lite med substring och charindex men det fungerar dåligt, speciellt som längden på varje värde i arrayen varierar.

Medlem sedan mars 20032 667 inlägg
#4

inspiro skrev:

Om jag har ett fält i min db som innehåller en array (exempelvis 10,20,30,40).

Låter som typiskt problematiskt, om fältet nu inte är ENUM (heter det så även i SQL-server?) eller liknande.

Medlem sedan sep. 2005673 inlägg
#5

Näe det är ett vanligt nvar-fält med en kommaseparerad sträng i.

Medlem sedan juni 200032 967 inlägg
#6

Om du nu måste ha det lagrat på det sättet, så kan du ju se till att du har ett kommatecken sist och först i fältet.

SELECT * FROM tbl_foo WHERE fld LIKE '%,30,%'
Medlem sedan sep. 2005673 inlägg
#7

Jo, fast jag vet inte vad värdet är... alltså behöver en viss position.

Medlem sedan juni 200032 967 inlägg
#8

Okej, lycka till.

Mvh

Medlem sedan sep. 2005673 inlägg
#9

Anar jag en viss sarkasm här... :p

Medlem sedan sep. 20011 914 inlägg
267 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)