2016-02-05 24 views
2

我想查找具有特定名稱的行。問題是,一些行有一個前綴:"(OBSOLETE)""(OBSOLETE) "SQL查找列所在行的行

所以對於名字約翰,我可以有三行:

John 
(OBSOLETE)John 
(OBSOLETE) John 

我將如何編寫一個查詢,這樣我可以找到所有的與該名稱匹配的行知道有時前綴將在那裏,我也想要那些?

+0

這可以用正則表達式來完成http://dev.mysql.com/doc/refman/5.7/en/regexp.html – mikey

回答

1

你能在LIKE語句中使用SQL通配符嗎?

SELECT * FROM Customers WHERE Name LIKE '%John'; 
0

要還不匹配BillyJohn:

select 
    * 
    from T 
    where ltrim(replace(fld, '(OBSOLETE)', '')) = 'John' 

或者乾脆:

where fld IN ('John', '(OBSOLETE) John', '(OBSOLETE)John') 

它不像上面(或LIKE用鉛通配符)有機會使用應索引一個存在。

+0

Alex,謝謝你的回答。如果這個名字帶有兩個詞,比如「John Smit」,這會起作用嗎?我認爲你正在取代空間。 –

+0

它只替換單詞之間的空格而不是空格 –