Hier @stringId ist Ihr zu durchsuchender Text. Auf diese Weise können Sie unnötige mehrfache Bedingungen vermeiden
Mit freundlichen Grüßen, Raghu.M.
Ich habe eine Tabelle mit einer varchar
Spalte categoryIds
. Es enthält einige IDs, die durch Kommata getrennt sind, zum Beispiel:
Ich möchte eine select-Anweisung ausführen und prüfen, ob in dieser Spalte ein int existiert. Etwas wie das:
%Vor%Ich weiß, dass dies in MySQL möglich ist, indem dies , aber kann es auch in SQL Server gemacht werden?
Ich habe versucht, das int zu einem char zu konvertieren, das die folgende Anweisung ausführt:
%Vor%Aber es sieht nicht so aus, als ob es "out of the box" Unterstützung für kommagetrennte Listen gibt, da es nichts zurückgibt.
Sie sollten diese Tabelle wirklich so umgestalten, dass diese Werte von Kommas getrennt in einzelne Zeilen aufgeteilt werden. Wenn dies jedoch nicht möglich ist, müssen Sie stattdessen einen String-Vergleich durchführen:
%Vor%Hier @stringId ist Ihr zu durchsuchender Text. Auf diese Weise können Sie unnötige mehrfache Bedingungen vermeiden
Mit freundlichen Grüßen, Raghu.M.
Ich habe eine Tabelle mit einer %code% Spalte %code% . Es enthält einige IDs, die durch Kommata getrennt sind, zum Beispiel:
%Vor%Ich möchte eine select-Anweisung ausführen und prüfen, ob in dieser Spalte ein int existiert. Etwas wie das:
%Vor%Ich weiß, dass dies in MySQL möglich ist, indem dies , aber kann es auch in SQL Server gemacht werden?
Ich habe versucht, das int zu einem char zu konvertieren, das die folgende Anweisung ausführt:
%Vor%Aber es sieht nicht so aus, als ob es "out of the box" Unterstützung für kommagetrennte Listen gibt, da es nichts zurückgibt.
SELECT * FROM %code% WHERE (user_tags regexp '[[: & lt;:]] 10 [[: & gt ;:]]' oder user_tags regexp '[[: & lt;:]] 11 [[: & gt;:]]])
Ich bin mir nicht sicher, ob das schneller oder langsamer wäre als der Vorschlag von DavidG, aber um die gleichen Übereinstimmungen mit nur einer Prüfung zu erhalten, können Sie Folgendes tun:
%Vor%Verwenden Sie %code% mysql-Funktion
Syntax
%Vor%Beispiel
%Vor%Sie könnten dynamisches SQL wie folgt verwenden:
%Vor%Ich bin mir nicht sicher, ob das schneller oder langsamer wäre als der Vorschlag von DavidG, aber um die gleichen Übereinstimmungen mit nur einer Prüfung zu erhalten, können Sie Folgendes tun:
%Vor%SELECT * FROM
user_master
WHERE (user_tags regexp '[[: & lt;:]] 10 [[: & gt ;:]]' oder user_tags regexp '[[: & lt;:]] 11 [[: & gt;:]]])
Verwenden Sie FIND_IN_SET()
mysql-Funktion
Syntax
%Vor%Beispiel
%Vor%Tags und Links sql sql-server