webForumDet fria alternativet

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

Databaser & SQLur Databashanterare & SQL

9 svar · 516 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#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 969 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 969 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 969 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
140 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)