Ho una tabella con una colonna varchar
categoryIds
. Esso contiene alcuni ID separati da virgole, ad esempio:Come posso verificare se un numero è contenuto in una lista separata da virgole memorizzata in una colonna varchar?
id categoryIds
--------------------
1 3,7,12,33,43
voglio fare una dichiarazione prescelta e verificare se un int esiste in quella colonna. Qualcosa di simile a questo:
select *
from myTable
where 3 in (categoryIds)
So che questo è possibile in MySQL facendo this, ma si può fare in SQL Server come bene?
Ho provato gettando l'int a un char, che gestisce la seguente dichiarazione:
select *
from myTable
where '3' in (categoryIds)
Ma non sembra che ci sia alcun "out of the box" supporto per i separati da virgola liste come si ritorna Niente.
Dovresti pensare al tuo design di db. Memorizzare i valori in formato csv non è una buona pratica. – Jens
Non memorizzare i dati come valori separati da virgola nella soluzione. Un valore per riga è il modo SQL! – jarlh
Forse qualcosa di simile: 'SELECT * FROM WHERE myTable '' + categoryId + '' LIKE '%, 3,%';' – dwjv