在SQL查询中使用LIKE来代替IN查询的方法
在SQL查询中根据已知ID的集合来查询结果我们通常会用到IN,直接在IN后面给出ID的集合或是在IN后面跟一个子查询。
如下:代码如下:
SELECT * FROM Orders
WHERE OrderGUID IN('BC71D821-9E25-47DA-BF5E-009822A3FC1D','F2212304-51D4-42C9-AD35-5586A822258E')
可以看出直接在IN后面跟ID的集合需要将每一个ID都用单引号引起来。在实际应用中会遇到这么一种情况,在界面中收集的是一串GUID的拼接字符串,中间以逗号隔开,如果作为参数传到一个存储过程中执行,最终生成的语句会是下面这样:
代码如下:
SELECT * FROM Orders
WHERE OrderGUID IN('BC71D821-9E25-47DA-BF5E-009822A3FC1D,F2212304-51D4-42C9-AD35-5586A822258E')
这样就不能查询到正确的结果。
一般情况下我们解决此问题的思路是将传入的字符串用一个split函数来处理,最终处理的结果是一张表,然后将这个表做自查询即可,如下:
代码如下:
DECLARE @IDs VARCHAR(4000)
SET @IDs='BC71D821-9E25-47DA-BF5E-009822A3FC1D,F2212304-51D4-42C9-AD35-5586A822258E'
DECLARE @temp TABLE(str VARCHAR(50))
INSERT INTO @temp
SELECT * FROM dbo.Split(@IDs,',')
SELECT * FROM Orders WHERE OrderGUID IN (SELECT str FROM @temp)
当然split函数系统比不提供,需要我们自己写:
代码如下:
CREATE FUNCTION Split
(
@SourceSql varchar(8000),
@StrSeprate varchar(10)
)
RETURNS @temp TABLE(F1 VARCHAR(100))
AS
BEGIN
DECLARE @i INT
SET @SourceSql=rtrim(ltrim(@SourceSql))
SET @i=charindex(@StrSeprate,@SourceSql)
WHILE @i>=1
BEGIN
INSERT @temp VALUES(left(@SourceSql,@i-1))
SET @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
SET @i=charindex(@StrSeprate,@SourceSql)
END
IF @SourceSql''
INSERT @temp VALUES(@SourceSql)
RETURN
END
像这样做非常麻烦,而且还需要借助函数来实现,下面介绍一种简单的方法,因为GUID是唯一的,所以在上面的例子中可以使用LIKE来代替IN也可以达到同样的查询效果:
代码如下:
SELECT * FROM Orders
WHERE 'BC71D821-9E25-47DA-BF5E-009822A3FC1D,F2212304-51D4-42C9-AD35-5586A822258E'
LIKE '%'+convert(VARCHAR(40),OrderGUID)+'%'

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Mit der kontinuierlichen Weiterentwicklung der Internationalisierung müssen immer mehr Websites und Anwendungen mehrsprachige Umschaltfunktionen unterstützen. Als beliebtes Front-End-Framework bietet Vue ein Plug-In namens i18n, das uns bei der Umschaltung mehrerer Sprachen helfen kann. In diesem Artikel werden gängige Techniken zur Verwendung von i18n zur Implementierung der Mehrsprachenumschaltung in Vue vorgestellt. Schritt 1: Installieren Sie das i18n-Plugin. Zuerst müssen wir das i18n-Plugin mit npm oder Yarn installieren. Geben Sie in der Befehlszeile den folgenden Befehl ein: npminst

Die Out-Schnittstelle bezieht sich auf die Ausgabeschnittstelle und die In-Schnittstelle bezieht sich auf die Eingabeschnittstelle. Die Out-Schnittstelle stellt im Allgemeinen die Line-Ausgangsschnittstelle der Audioquelle dar, die zum Anschließen von Lasten wie Lautsprechern, Kopfhörern usw. verwendet wird, während die In-Schnittstelle im Allgemeinen die Line-Eingangsschnittstelle der Audioquelle darstellt, die zum Anschluss von CD-Playern und Mobilgeräten verwendet wird Telefone, MP3-Player, Computer usw.

1. Der Unterschied im übereinstimmenden Inhalt erfordert, dass die gesamten Daten übereinstimmen. Bei „Gefällt mir“ müssen alle Inhalte dieses Felds nur teilweise übereinstimmen und nur ein Fragment muss erfüllt sein. 2. Der Unterschied in der Übereinstimmungsposition: LIKE stimmt mit der gesamten Spalte überein. Wenn der übereinstimmende Text im Spaltenwert vorkommt, wird er von LIKE nicht gefunden und die entsprechende Zeile wird nicht zurückgegeben (es sei denn, REGEXP liegt innerhalb des Spaltenwerts). . Wenn der übereinstimmende Text im Spaltenwert erscheint, wird er von REGEXP gefunden, die entsprechende Zeile wird zurückgegeben und REGEXP kann den gesamten Spaltenwert abgleichen (gleicher Effekt wie LIKE). 3. Die SQL-Anweisung gibt Daten zurück, die sich von der LIKE-Übereinstimmung unterscheiden: die SQL-Anweisung

Das langsame Abfrageprotokoll von MySQL ist ein von MySQL bereitgestellter Protokolldatensatz, der zum Aufzeichnen von Anweisungen in MySQL verwendet wird, deren Abfragezeit den festgelegten Schwellenwert (long_query_time) überschreitet, und sie im langsamen Abfrageprotokoll aufzeichnet.

PHP und PDO: So führen Sie komplexe SQL-Abfrageanweisungen aus. Bei der Verarbeitung von Datenbankoperationen stellt PHP eine leistungsstarke Erweiterungsbibliothek PDO (PHPDataObjects) zur Verfügung, um die Interaktion mit der Datenbank zu vereinfachen. PDO unterstützt eine Vielzahl von Datenbanken wie MySQL, SQLite usw. und bietet außerdem eine Fülle von Funktionen und Methoden, um Entwicklern die Durchführung verschiedener Datenbankoperationen zu erleichtern. In diesem Artikel wird die Verwendung von PDO zum Ausführen komplexer SQL-Abfrageanweisungen vorgestellt und entsprechende Codebeispiele angehängt. Stellen Sie eine Verbindung zur Datenbank her

Der LIKE-Operator wird verwendet, um in einer Spalte in der WHERE-Klausel nach einem angegebenen Muster zu suchen. Syntax: SELECTcolumn_name(s)FROMtable_nameWHEREcolumn_nameLIKEpatternpattern Hier wird die angegebene Vorlage platziert und hier wird „%“ verwendet, das auch als Platzhalterzeichen % bezeichnet wird. Wenn es vor der Bedingung platziert wird, wird nach Daten gesucht, die mit … enden. .; zum Beispiel: % Wenn Li% nach der Bedingung steht, werden die Daten gesucht, die mit... beginnen. Beispiel: Li%%. Wenn sie vor und nach der Bedingung vorhanden sind, werden zum Beispiel die enthaltenen Daten durchsucht : %李% Kleiner Wissenspunkt: ERROR1064 (42000):Youhaveane

Der Unterschied zwischen Mysqlon, in, as, where Antwort: Wo Bedingungen abfragen, on für interne und externe Verbindungen verwenden, as als Alias, in um abzufragen, ob ein bestimmter Wert 2 Tabellen in einer bestimmten Bedingung erstellt: student, scorestudent: score: whereSELECT*FROMstudentWHEREs_sex=' Male'Zum Beispiel: onSELECT*FROMstudentLEFTJOINscoreonstudent.s_id=score.s_id; Kombination aus on und where: SELECT*FROMstudentLEFTJOINs

In der Webentwicklung sind Tabellen die grundlegendsten und am häufigsten verwendeten Elemente, und PHP ist eine beliebte serverseitige Programmiersprache. Es gibt viele gängige Techniken und Methoden für Tabellenoperationen. In diesem Artikel werden gängige Tabellenoperationen in der PHP-Programmierung vorgestellt. Datentabellen anzeigen In PHP können Sie das Tabellen-Tag in HTML verwenden, um Datentabellen anzuzeigen. Beachten Sie, dass die Tabelle in einem PHP-Skript generiert werden muss. Hier ist ein Beispiel für ein einfaches HTML-Tabellen-Tag: <table><tr>
