用特殊的MySQL运算符获得更多数据比较功能

http://tech.ddvip.com   2007年11月13日    社区交流

内容摘要:如果你在最近进行过SELECT或UPDATE查询,那么你很可能用到过一个或者多个MySQL的比较运算符来限制查询的输出结果。比较是大多数SELECT查询不可分割的一部分,而MySQL为这一功能提供了很多函数;根据最近一次统计,它有超过20个这样的运算符和函数,从著名的=和LIKE到更加难懂的NOT IN和STRCMP()。

  +--------------------------------------+

  | INTERVAL (24, 5, 10, 15, 20, 25, 30) |

  +--------------------------------------+

  |                  4 |

  +--------------------------------------+

  1 row in set (0.07 sec)

  在这个例子中,24比25(索引位置4)小,但是比20(索引位置3)大,因此它的INTERVAL是4。

  STRCMP

  STRCMP()函数是MySQL里比较字符串的最简单方式之一。这个函数接受两个参数——要被比较的字符串。如果这个两个字符串相同,它就返回0;如果第一个大于第二个,它就返回1;如果第一个小于第二个,它就返回-1。比较的结果完全依赖当前使用时的字符集。下面就是几个例子:

  mysql> SELECT STRCMP('hell', 'hell');

  +------------------------+

  | STRCMP('hell', 'hell') |

  +------------------------+

  |           0 |

  +------------------------+

  1 row in set (0.00 sec)mysql> SELECT STRCMP('bell', 'hell');

  +------------------------+

  | STRCMP('bell', 'hell') |

  +------------------------+

  |           -1 |

  +------------------------+

  1 row in set (0.00 sec)

  REGEXP

  要进行更加复杂的字符串比较,REGEXP函数常常要比用滥了的LIKE语句更加强大。这个函数会把一个表达式与一个正则表达式模式进行比较,如果找到匹配的,它就返回布尔值——真。下面是这样一个例子:

  mysql> SELECT 'The Matrix' REGEXP '[u-z]$';

  +------------------------------+

  | 'The Matrix' REGEXP '[u-z]$' |

  +------------------------------+

  |              1 |

  +------------------------------+

  1 row in set (0.00 sec)

  DATEDIFF

  正如其名字所表示的,DATEDIFF()函数是一个快速获得两个日期之间天数的工具。这对于计算到某个事件发生时的天数,或者在给定某人的生日时计算他/她的年龄很有用。

  mysql> SELECT DATEDIFF(20060101, 20051201);

  +------------------------------+

  | DATEDIFF(20060101, 20051201) |

  +------------------------------+

  |              31 |

  +------------------------------+

  1 row in set (0.00 sec)

  DATEDIFF()通常与NOW()函数一起使用——例如,计算今天到过去或者未来任意一天之间的天数。下面就是一个例子:

  mysql> SELECT DATEDIFF(NOW(), 20060203);

  +---------------------------+

  | DATEDIFF(NOW(), 20060203) |

  +---------------------------+

  |            176 |

  +---------------------------+

  1 row in set (0.00 sec)

  以上就是本文的内容。要记住的是,你可以在MySQL手册里发现更多关于这些函数的信息。玩得高兴!

责编:豆豆技术应用

正在加载评论...