开发手册 欢迎您!
软件开发者资料库

MySQLi - Regexps

MySQL Regexps - 从简单和简单的步骤学习MySQLi,从基本到高级概念,包括简介,安装,管理,PHP语法,连接,创建,删除,信息,选择数据库,数据类型,创建,删除,克隆表,插入查询,选择查询,Where子句,更新查询,删除查询,类似子句,排序结果,使用连接,NULL值,正则表达式,事务,更改命令,索引,临时,使用序列,处理重复。

您已经看到MySQLi模式与 LIKE ...%匹配. MySQLi支持基于正则表达式和 REGEXP 运算符的另一种模式匹配操作.如果您了解PHP或PERL,那么您很容易理解,因为这种匹配与那些脚本正则表达式非常相似.

以下是模式表,可以是与 REGEXP 运算符一起使用.

Pattern模式匹配
^字符串的开头
$字符串结尾
.任何单个字符
[...]列出的任何字符方括号之间
[^ ...]任何字符都没有方括号之间列出
p1 | p2 | p3轮换;匹配任何模式p1,p2或p3
*零或更多前面元素的实例
+前面的一个或多个实例元素
{n}n前面元素的实例
{m,n}m到前面元素的n个实例

示例

现在根据上表,您可以设置各种类型的SQL查询来满足你的要求.在这里,我列出了一些你的理解.考虑我们有一个名为tutorials_inf的表,它有一个名为name的字段;

查询以查找以'sa'开头的所有名称

mysql>  SELECT * FROM tutorials_inf WHERE name REGEXP '^sa';

示例输出应该是这样的 :

+----+------+| id | name |+----+------+|  1 | sai  |+----+------+1 row in set (0.00 sec)

查询查询所有以'ai'结尾的名字

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP 'ai$';

示例输出应该是这样的 :

+----+------+| id | name |+----+------+|  1 | sai  |+----+------+1 row in set (0.00 sec)

查询查询所有名称,包含'a'

 mysql> SELECT * FROM tutorials_inf WHERE name REGEXP 'a';

示例输出应该是这样的 :

+----+-------+| id | name  |+----+-------+|  1 | sai   ||  3 | ram   ||  4 | johar |+----+-------+3 rows in set (0.00 sec)

查询到找到所有以元音开头的名字

mysql>  SELECT * FROM tutorials_inf WHERE name REGEXP '^[aeiou]';