2011-03-21 60 views
0

我在mysql查詢日誌中發現了這個查詢,我想知道它究竟做了什麼。mysql正則表達式

select * from tblname WHERE TRIM(NAME) REGEXP 'John[  ]*Smith' 

回答

3

它選擇從tblname所有行name(含空格去掉左右,如果有的話)等於John<any number of spaces>Smith

所以你會發現JohnSmith以及John_________________________Smith(計算器吃重複的空間,所以我代替他們與下劃線)。

正則表達式本身是有點臃腫和可改寫爲John *Smith

+0

你甚至可以跳過字符類:P – alex 2011-03-21 04:26:11

+0

@alex:呵呵,抓住了我;-) – zerkms 2011-03-21 04:28:19

+0

+1你Zerky! – alex 2011-03-21 04:29:15