四、通配符过滤、正则表达式
LIKE谓词:为在搜索子句中使用通配符,必须使用 LIKE 操作符。 LIKE 指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。 1. %:任何字符出现任意次数。select column_name1 from table_name where column_name2 like ‘jet%‘; 检索以jet开头的数据,默认不区分大小写。 2. _: 下划线匹配单个字符只匹配一个字符,不能多也不能少,不能像%通配符一样匹配0个或多个。 3.通配符使用规则
4.正则表达式REGEXPselect column_name from table_name where column_name REGEXP ‘1000‘; 检索column_name字段中含有字符1000的数据。比如:jef1000sad; 如果使用LIKE,那么它将不会匹配jef1000sad中的1000,因为LIKE是全词匹配。 (1) .(点号)表示匹配任意一个字符select column_name from table_name where column_name REGEXP ‘.000‘; 检索含有‘000‘前面有一个字符的数据。比如: ssfdd1000 dsafd2000 这两个都可以。 (2) OR匹配select column_name from table_name where column_name REGEXP ‘100|101‘; 把要匹配的内容用单引号括起来,此语句匹配字段中含有100或者101的值。是含有,而不是全词匹配。 (3) 匹配几个字符之一。使用中括号: select column_name from table_name where column_name REGEXP ‘[35] tom‘; 此语句匹配含有‘3 tom’或者‘5 tom’的字段值。注意不是全词匹配,含有就行。 此外还可以进行范围匹配:
(4)匹配特殊字符。如果我们要查找字段值中含有‘.’的值,假如我们使用: ... REGEXP ‘.‘; 那么我们将匹配中所有字段,因为在正则表达式中点号表示匹配任意一个字符。所以我们需要转义: select column_name from table_name where column_name REGEXP ‘.‘; 特殊字符匹配: (5) 匹配字符类举个例子,匹配含有空格的字段值,不仅可以使用: ... REGEXP ‘ ‘; 还可以根据上表中的[:blank:]: select name from tb2 where name regexp ‘[[:blank:]]‘; 记住外面还需要套上个中括号才行。 (6) 匹配多个实例举两个例子: 字符‘s‘后面跟的问号表示匹配0个或1个,所以可以匹配到含有‘stick‘或者‘sticks‘. 下一个例子: 第一个正则表达式匹配任意出现的数字,而{4}又规定了出现4次,所以这个语句检索连续出现4个数字的字段值。 (7) 定位符我们上面用的正则表达式都是在字段值中的任意位置进行匹配,但假如我们要检索开头的某些字符的字段值呢? 开头:^ select name from tb2 where name regexp ‘^[1-5]‘; 检索开头是以1或2或3或4或5的字段值。 结尾:$ select name from tb2 where name regexp ‘[mo]$‘; 检索以字符m或者o结尾的字段值。 ^ 符号还有一个用途: select name from tb2 where name regexp ‘[^1-3 tom]‘; 此语句是检索除了‘1 tom‘,‘2 tom‘,‘3 tom‘以外的字段值。可以看做全词否定。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – MSTest中runsettings和testsettings之间究
- reactjs – React Native React(用于web)种子项目
- quick cocos2dx 3.3rc1 如何Lua调用自定义C++类(
- c# – 如何将ComboBox绑定到具有深DisplayMember
- 70.You configured the Flash Recovery Area (FR
- c – 从函数OK返回堆分配的指针?
- Kotlin\/Native v0.5发布:支持从Swift和C调
- Access 2007/2010 VBA基于Windows认证的用户管理
- flex的ResourceBundle用处
- 在C中:如何设置指向作为数组的结构成员的指针?