Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was ist die Methode zur Verwendung von Zeichenfolgen im Zustand in MySQL?

王林
Freigeben: 2023-05-31 10:17:03
nach vorne
1799 Leute haben es durchsucht

Die In-Bedingung in MySQL verwendet Zeichenfolgen

Szenario

Wenn SQL als Bedingung verwendet, wird ein Parameter verwendet, um die Abfragebedingung zu erfüllen, und die direkte Übergabe der Zeichenfolge kann die Bedingung nicht erfüllen.

select id,name from user where id in(?)
Nach dem Login kopieren

Methode

Verwenden Sie die Funktion FIND_IN_SET(str,strlist)

select id,name from user where FIND_IN_SET(id,#{strlist})
Nach dem Login kopieren
  • str: Bedingungsfeldstr: 条件字段

  • strlist

strlist: übereinstimmender Wertesatz

select id,name from user where FIND_IN_SET(id,'111,22,333')
Nach dem Login kopieren

Die MySQL-Abfrage im Bedingungsparameter ist eine Zeichenfolge mit Komma. Das Abfrageergebnis ist falsch ;

Das korrekte Abfrageergebnis der SQL-Abfrage sollte sein:

Nicht empfohlen, Kunden fördern, Kunden fördern

Das tatsächliche Ergebnis ist:

Nicht empfohlen

Grund:

Wenn in MySQL ist eine Zeichenfolge. Wenn dies der Fall ist, wird sie automatisch in den Typ int konvertiert. Die folgende Methode wird intern verwendet:

SELECT
    (
        SELECT
            GROUP_CONCAT(content)
        FROM
            account_limit_user ur
        WHERE
            ur.id IN (T1.limit_user)
        GROUP BY
            ur.id
    ) AS limit_user
FROM
    account T1
WHERE
    1 = 1
Nach dem Login kopieren
Da das Komma fälschlicherweise als Semikolon geschrieben wird, wird „4,3“ zu „4;“, also Ergebnis der obigen Abfrage SQL enthält nur das erste.

Lösung

CAST('4,3' AS INT)
Nach dem Login kopieren

Korrektes SQL

FIND_IN_SET('查询的值(如:1)', '使用逗号隔开的字符串集合,如:('1,2,3')')
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist die Methode zur Verwendung von Zeichenfolgen im Zustand in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage