..


赞助商链接

在MySQL查询正则表达式

由Max博西写文章

MySQL的内部引擎本土-除了平等,不平等和相似性(像)的共同经营者-一个非常有用的操作:REGEXP操作。
正如其名称所暗示的,REGEXP操作员利用正则表达式的权力,我们的MySQL数据库内执行复杂的搜索。 语法很简单:






 SELECT FIELD_NAME







 FROM TABLE_NAME







 WHERE FIELD_NAME REGEXP表达;

 
让我们遵循主角和特殊的语法在表达式中使用的比较简单的简表:

^ 开始的字符串
$ 结束的字符串
任何字符
[...] 任何在方括号中的字符
[^...] 任何除方括号中的字符
| 他们选择的字符或字符串分隔
* 零个或多个前面的字符或字符串重复
+ 一个或多个先前的字符或字符串的重复
{N} “N”字或重复以前的字符串
{最小,最大} 重复前面的字符或字符串的次数之间的最小和最大数量

我们做一个少数,像往常一样,是胜过千言万语的实际例子...
为了简单起见,我们将引用一个假想的日历数据库包含了我们的朋友的名字。

1)我们找到所有名称以“M”开头

 



日历选择其中name REGEXP'^ M'的名称;

 
我们的查询将返回,例如:
  • M ARA
  • M
  • M进制
  • Ilena M
2)我们找到所有名称结尾“或”
 



日历选择名WHERE名称REGEXP'或$';

 
我们的查询将返回,例如:
  • 或者菲利普
  • 马克
  • 海洋
  • 保罗
3)我们找到所有名称以“M”开始,最终“或”
 



日历选择其中name REGEXP'^ M + O $'的名称;

 
我们的查询将返回,例如:
  • M
  • M ARI
4)我们找到所有名称中包含字母“R”
 



日历选择其中name REGEXP“R”的名称;

 
我们的查询将返回,例如:
  • ř CLA
  • r
  • r合作
  • 不过,I R
5)我们找到所有名称中包含字母组“,而是”或“I”
 



日历选择名WHERE名称REGEXP“马|岭”;

 
我们的查询将返回,例如:
  • LUC
  • RCO
  • 不过,I R
6)我们找到所有名称不包含字母“M”和“A”
 



日历选择名WHERE名称REGEXP'[^马]“;

 
我们的查询将返回,例如:
  • 菲利普
  • 卢西奥
我离开了读者进一步测试可能REGEXP操作,因为使用的可能领域有那么多,这是很难在很短的文章中总结,因为这意味着要。

在同一类...
电子学习
MS访问(高级) MS访问(高级)
了解如何创建和管理数据库迅速和容易。 起价29€。
MySQL的(课程) MySQL的(课程)
管理的开放源码数据库。 从39€。
SQL和数据库(课程) SQL和数据库(课程)
创建和管理关系数据库。 从39€。
赞助商链接