2016-08-09 38 views
0

wp_postmetameta_value包含值http/google.co.in/使用SQL查詢

搜索其間的字符串如果http/google.co.in/testing用戶搜索,然後將結果集應包含http/google.co.in/

我試着用下面的查詢:

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

但它沒有返回預期的結果。

我怎樣才能得到想要的結果?我如何使用正則表達式來獲得這個結果?

+1

通常,「http」後面跟冒號。這可能是你的問題嗎? –

回答

1

如果您使用sql:..... LIKE '%http/google.co.in/testing%',那麼DB將查找包含"http/google.co.in/testing"的任何字符串。請注意,您期望的結果不包含"testing"裏面。

讓我們試試:

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

@ user6617474:請嘗試 – Grace

+0

@ user6617474:請注意,對於'http/google.co.in /',有時它可能只存在於'http/google.co.in'而沒有尾隨'/' – Grace

+0

謝謝它適用於我.. – user6617474

1

'%http/google.co.in/testing%'表示您正在查找包含'http/google.co.in/testing'的任何字符串,因此'http/google.co.in/'不會返回任何結果,因爲它不包含您正在查找的字符串。 您可以使用SUBSTR()搜索字符串的一部分。

0

正如其他人所指出的,像搜索包含整個搜索字符串(以及任何其他字符串,其中%S是)字符串,包含你的字符串的一個子不是字符串。我不知道是否有這樣的命令。 你建議或許正則表達式就是你的答案。 MySQL實際上有一個正則表達式命令,快速谷歌搜索將顯示這裏的文檔:http://dev.mysql.com/doc/refman/5.7/en/regexp.html 你需要進一步的幫助來確定你的正則表達式,或者這是否足夠? 如果您需要進一步的幫助,您必須明確要查找哪些正則表達式,因爲您必須瞭解搜索字符串的組成部分,以瞭解什麼是常量,什麼是可變的。