2016-08-09 38 views
0

In wp_postmeta Tabelle meta_value den Wert http/google.co.in/suchen die dazwischen Zeichenfolge mit SQL-Abfrage

enthält Wenn der Benutzer sucht nach http/google.co.in/testing, dann sollte die resultset http/google.co.in/

enthalten habe ich versucht, mit folgenden Abfrage:

SELECT * FROM wp_postmeta WHERE meta_value LIKE '%http/google.co.in/testing%' 

, aber das erwartete Ergebnis wurde nicht zurückgegeben.

Wie kann ich das gewünschte Ergebnis erhalten? Wie kann ich reguläre Ausdrücke verwenden, um dieses Ergebnis zu erhalten?

+1

Normalerweise folgt auf "http" ein Doppelpunkt. Könnte das dein Problem sein? –

Antwort

1

Wenn Sie sql: ..... LIKE '%http/google.co.in/testing%' verwenden, sucht DB nach einer beliebigen Zeichenfolge, die "http/google.co.in/testing" enthält. Beachten Sie, dass das gewünschte Ergebnis "testing" nicht enthält.

Lassen Sie uns versuchen:

SELECT * FROM wp_postmeta WHERE meta_value LIKE CONCAT('%', SUBSTR('http/google.co.in/testing', 1, 18), '%') 
+0

@ user6617474: Bitte versuchen Sie – Grace

+0

@ user6617474: Achtung, dass für 'http/google.co.in /', manchmal kann es nur als http/google.co.in' ohne abschließende '/' – Grace

+0

Dank es funktioniert für mich .. – user6617474

1

Diese '%http/google.co.in/testing%' bedeutet, dass Sie nach einer beliebigen Zeichenfolge suchen, die 'http/google.co.in/testing' enthält. Daher gibt 'http/google.co.in/' kein Ergebnis zurück, da die Zeichenfolge, nach der Sie suchen, nicht enthalten ist. Sie können SUBSTR() verwenden, um nach einem Teil Ihrer Zeichenfolge zu suchen.

0

Wie andere haben darauf hingewiesen, LIKE sucht nach Zeichenketten die gesamte Suchtext (plus alle anderen Strings, wo die% s sind) enthalten, keine Strings eine Teil Zeichenfolge enthält. Ich weiß nicht, ob es ein solches Kommando gibt. Sie vorgeschlagen, vielleicht Regex ist Ihre Antwort. MySQL hat tatsächlich einen Regex-Befehl, für den eine schnelle Google-Suche die Dokumentation für Sie anzeigen würde: Benötigen Sie weitere Hilfe bei der Bestimmung Ihrer Regex, oder reicht das? Wenn Sie weitere Hilfe benötigen, müssen Sie genau klären, welche Regex suchen würde, weil Sie die Komponenten Ihrer Suchzeichenfolge verstehen müssen, um zu wissen, was konstant und was variabel sein wird.