Heim  >  Artikel  >  Datenbank  >  MySQL-Methode, um festzustellen, ob ein Feld eine Zeichenfolge enthält

MySQL-Methode, um festzustellen, ob ein Feld eine Zeichenfolge enthält

藏色散人
藏色散人Original
2020-02-07 09:43:0428921Durchsuche

MySQL-Methode, um festzustellen, ob ein Feld eine Zeichenfolge enthält

MySQL-Methode zur Bestimmung, ob ein Feld eine Zeichenfolge enthält

Methode 1: like

SELECT * FROM Tabellenname WHERE Feldname wie „% Zeichen %“;

Methode 2: find_in_set()

Verwenden Sie die MySQL-String-Funktion find_in_set ();

SELECT * FROM users WHERE find_in_set('字符', 字段名);

Das ist in Ordnung, wie verstehst du das?

MySQL verfügt über viele String-Funktionen. Die Funktion find_in_set(str1,str2) gibt den Positionsindex von str1 in str2 zurück, der durch "," getrennt werden muss.

Hinweis: Wenn str2 NO1 ist: „3,6,13,24,33,36“, NO2: „13,33,36,39“, bestimmen Sie, ob das Feld str2 in den beiden Daten „ 3', diese Funktion kann

mysql > SELECT find_in_set()('3','3,6,13,24,33,36') as test;
-> 1
mysql > SELECT find_in_set()('3','13,33,36,39') as test;
-> 0

Methode drei:locate(character, field name)

Verwenden Sielocate(character, field name). )-Funktion gibt, falls enthalten, eine Zahl von >0 zurück, andernfalls 0.

Sein Alias ​​ist Position in

select * from 表名 where locate(字符,字段)
select * from 表名 where position(字符 in 字段);

Beispiel: Bestimmen Sie, ob die URL in der Site-Tabelle „http:/“ enthält. /' Teilzeichenfolge, wenn sie nicht enthalten ist, wird sie am Anfang der URL-Zeichenfolge gespleißt

update site set url =concat('http://',url) where locate('http://',url)=0

Beachten Sie, dass das Pluszeichen + nicht zum Spleißen von Zeichenfolgen in MySQL verwendet werden kann. Verwenden Sie die Concat-Funktion

Methode 4: INSTR (Feld, Zeichen)

wählen Sie * aus dem Tabellennamen aus, wobei INSTR (Feld, Zeichen)

ist Darüber hinaus überprüfte der Autor den Ausführungsplan des oben genannten SQL ((außer find_in_set) und stellte fest, dass sie alle sind:

MySQL-Methode, um festzustellen, ob ein Feld eine Zeichenfolge enthält

Im Internet heißt es, dass die Verwendung von „locate Denn die Fuzzy-Abfrage ist schnell. Ich weiß nicht, wie es zu der Schlussfolgerung kam. Vielleicht liegt es an der großen Datenmenge.

(Empfohlenes kostenloses Lernvideo-Tutorial: MySQL-Video-Tutorial)

Das obige ist der detaillierte Inhalt vonMySQL-Methode, um festzustellen, ob ein Feld eine Zeichenfolge enthält. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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