簡體   English   中英

使用SQL查詢搜索中間字符串

[英]search the inbetween string using sql query

wp_postmeta表中, meta_value包含值http/google.co.in/

如果用戶搜索http/google.co.in/testing ,則結果集應包含http/google.co.in/

我嘗試了以下查詢:

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

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

我如何獲得理想的結果? 如何使用正則表達式獲得此結果?

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

如果您使用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), '%')

正如其他人指出的那樣,LIKE會搜索包含整個搜索字符串的字符串(加上%s所在的任何其他字符串),而不是包含字符串的子字符串的字符串。 我不知道是否有這樣的命令。 您建議也許正則表達式是您的答案。 實際上,MySQL確實有一個regex命令,通過Google的快速搜索,您會在這里看到文檔: http : //dev.mysql.com/doc/refman/5.7/en/regexp.html您是否需要進一步的幫助來確定您的文檔?正則表達式,還是足夠? 如果您需要進一步的幫助,則必須確切說明正則表達式將要搜索的內容,因為您必須了解搜索字符串的組成部分才能知道什么是常數和什么是變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM