it-swarm.com.de

Abfragezeichenfolge für MySQL SELECT

Normalerweise wird beim Abfragen einer Datenbank mit SELECT normalerweise nach Datensätzen gesucht, die einer bestimmten Suchzeichenfolge entsprechen.

Zum Beispiel:

SELECT * FROM customers WHERE name LIKE '%Bob Smith%';

Diese Abfrage sollte mir alle Datensätze geben, bei denen 'Bob Smith' irgendwo im Namensfeld steht.

Was ich gerne machen würde, ist das Gegenteil.

Anstatt alle Datensätze zu finden, die "Bob Smith" im Namensfeld enthalten, möchte ich alle Datensätze finden, bei denen das Namensfeld in "Robert Bob Smith III, PhD.", Einem String-Argument der Abfrage, steht.

23
JR Lawhorne

Drehen Sie einfach das LIKE um

SELECT * FROM customers
WHERE 'Robert Bob Smith III, PhD.' LIKE CONCAT('%',name,'%')
35

Sie können reguläre Ausdrücke wie folgt verwenden:

SELECT * FROM pet WHERE name REGEXP 'Bob|Smith'; 
9

Sie können auch verwenden 

SELECT * FROM customers WHERE name LIKE "%Bob Smith%";

beachten Sie die Anführungszeichen

1

In der obigen Abfrage Wenn wir mit einem bestimmten Zeichen suchen, zum Beispiel: '__' oder '()' als das Abrufen aller Daten, 

SQL> select * from test_brck wobei NVL (UPPER (v_name), 1) LIKE nvl (UPPER ('%' || & v_name || '%'), NVL (UPPER (v_name), 1));

Geben Sie den Wert für v_name ein: '_'

alte 2: Dabei NVL (UPPER (v_name), 1) LIKE nvl (UPPER ('%' || & v_name || '%'), NVL (UPPER (v_name), 1))

new 2: wo NVL (UPPER (v_name), 1) LIKE nvl (UPPER ('%' || '_' || '%'), NVL (UPPER (v_name), 1))

V_NAME

Ramu (ging gbl)

Ramj

Ramu_Karan (ging blr)

Sidd_Karan

ABC% ^

xy123

aBC

7 Zeilen ausgewählt. 

Ausgabe:

Ramu_Karan (ging blr)

Sidd_Karan

0
Rakesh