Tabelle POST:SQL Server 2008 wie kommabegängige Zeichenfolge aus einer Spalte abfragen?
postId Tag Author
-----------------------
1 A,B x,y
2 B,C,D x
3 C,D y
Fragen:
Wie Datensätze auszuwählen, die Tag = 'B' in dem Komma getrennte Zeichenfolge haben? Aus dem obigen Beispiel sollte der Datensatz 1,2 zurückgegeben werden.
Wie Datensätze auswählen, die Tag = 'B' und Autor = 'y' haben? Die zurückgegebenen Datensätze sollten 1.
BTW sein: Wenn ich Datenbank-Schema in drei Tabellen POST
Redesign, TAG
und AUTHOR
, dann die gewünschten Datensätze abfragen, indem innere Join-Klausel. Verglichen mit der früheren Methode, die besser in der Leistung ist? Die Tabelle POST
hat insgesamt 10 tausend Datensätze.
Wenn Sie nach einer Liste in einer Liste suchen möchten, können Sie dies nicht auf String-Ebene tun! Wenn Sie ein 'A' in' A, B, C, D' finden wollen, ist es einfach, gleiches mit 'B, C'. Aber was ist mit "C, B" oder "A, C"? Solche Werte ** müssen in separaten Tabellen gespeichert werden **. In Ihrem Fall würde ich ein klassisches 'm: n'-Design mit Tabellen für Posts, Tags und Autoren und Mapping-Tabellen zwischen ihnen vorschlagen. Btw: 10.000 Datensätze ist nicht viel ... – Shnugo