2015-08-15 54 views
0

將字符串與數據庫中的條目進行比較時,_或%通配符允許您搜索數據庫中包含searchterm的字符串。但是,你能否反轉這一點,以便查找包含在搜索項內的數據庫條目?反轉SQL通配符方向

SELECT Species FROM Animal WHERE Species LIKE 'horse_' 

returns: horse, horses 

你會如何修改這,如果你的原詞是「馬」,而不是「馬」返回兩個值?

SELECT Species FROM Animal WHERE Species_ LIKE 'horses' 
-> invalid sql syntax 

回答

4

您可以交換兩個值,所以SpeciesLIKE後的部分。另外,通配符模式是一個字符串值。如果您想添加通配符,請將其添加爲字符串值。這意味着使用像CONCAT函數或也許||&操作,取決於數據庫使用:

要匹配(只)「馬」:

SELECT Species FROM Animal WHERE 'horses' like CONCAT(Species, '_') 

邊注:在這種情況下,對單個角色有一個通配符,並且這個角色總是匹配'馬'中的's'。所以基本上,上面的查詢將是相同的:

SELECT Species FROM Animal WHERE Species = 'horse' 
+0

正是我在找的,謝謝。 – Eddy