MySQL中两种模式匹配形式的区别

时间:2014-04-07 11:03:23

标签: mysql regex pattern-matching

这是MySQL中两种模式匹配形式。

  1. SQL模式匹配。
  2. 扩展正则表达式模式匹配
  3. 任何人都可以指定这两种模式匹配形式之间的确切区别吗? 我已经搜索了很多内容,但无法得到令人信服的答案。官方文档也无法给出一个好的答案。任何帮助将不胜感激

    先谢谢

1 个答案:

答案 0 :(得分:0)

SQL模式匹配使您可以使用“_”匹配任何单个字符,使用“%”匹配任意数量的字符(包括零个字符)。在MySQL中,SQL模式默认情况下不区分大小写。这里显示了一些例子。你不使用=或<>当你使用SQL模式时;请改用LIKE或NOT LIKE比较运算符。

LIKE和REGEXP运算符之间的一个重要区别是LIKE运算符仅在模式匹配整个字符串时才返回True。例如。 WHERE testcolumn LIKE'jg'将仅返回testcolumn与jg相同的行,但大小写可能除外。另一方面,WHERE testcolumn REGEXP'jg'将返回testcolumn在字符串中的任何位置具有jg的所有行。使用WHERE testcolumn REGEXP'^ jg $'只获取与jg相同的列。相当于WHERE testcolumn LIKE'jg%'将是WHERE testcolumn REGEXP'^ jg'。因为部分匹配被接受,所以不需要在正则表达式的末尾添加。*(REGEXP等效于LIKE的%)。

http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html