2011-03-21 40 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