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

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

  本文把重点放在一些不太常见的MySQL数据比较函数和运算符上,讨论它们可以被如何运用在应用程序里比较表格字段里的字符串、数字和日期/时间或者用户提供的值。

  BETWEEN

  BETWEEN运算符是测试在某个范围内是否存在一个数值或者日期值的有用方式。这个运算符接受两个参数——最大值和最小值,并测试所提供的值是否在这两个值的范围之内。如果在这个范围之内,运算符就返回一个布尔值——真;否则,它就返回一个伪值。下面就是一个例子:

  mysql> SELECT 2350 BETWEEN 100 AND 10000;

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

  | 2350 BETWEEN 100 AND 10000  |

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

  |             1             |

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

  1 row in set (0.18 sec)

  下面两个例子用到了日期值:

  mysql> SELECT 20060405 BETWEEN 20060101 AND 20070101;

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

  | 20060405 BETWEEN 20060101 AND 20070101  |

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

  |                   1                  |

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

  1 row in set (0.00 sec)

  mysql> SELECT 20060405 BETWEEN 20060101 AND 20060401;


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

  | 20060405 BETWEEN 20060101 AND 20060401  |

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

  |                   0                       |

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

  1 row in set (0.00 sec)

  GREATEST和LEAST

  GREATEST和LEAST运算符为判断一组数字或者时间值中最大和最小值提供了一个便捷的途径。你一看名字就知道这两个运算符的作用——下面是一个对一组日期使用GREATEST运算符的例子:

  mysql> SELECT GREATEST(20000601, 20000529, 20000604);

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

  | GREATEST(20000601, 20000529, 20000604)  |

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

  |                20000604                       |

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

  1 row in set (0.00 sec)

  而下面是一个对一组数值使用LEAST运算符的例子:

  mysql> SELECT LEAST(100, 200, 50, -6, -73, 1000);


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

  | LEAST(100, 200, 50, -6, -73, 1000) |

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

  |                -73                        |

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

  1 row in set (0.03 sec)

  IN

  IN是一种用来测试在预先指定的选项列表里是否存在某个特定值的有用运算符。它可以用在数字、字符和时间值上。它接受两个参数——要被测试的值和选项列表。下面就是一个使用字符串的例子:

  mysql> SELECT 'c' IN ('a', 'b', 'c', 'd');


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

  | 'c' IN ('a', 'b', 'c', 'd') |

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

  |              1                    |

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

  1 row in set (0.02 sec)

  下面一个例子用到了数字:

  mysql> SELECT 1 IN (3,4,5);

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

  | 1 IN (3,4,5)       |

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

  |      0       |

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

  1 row in set (0.00 sec)

  COALESCE

  COALESCE运算符在区分列表中NULL和非NULL值上十分有用。利用提供的值的列表,它会返回列表中第一个非NULL的值,或者,如果不存在非NULL的值,它就会返回一个NULL。这在你有一个同时含有NULL和实际内容的列,并且希望快速地“跳到”第一个非NULL的记录时尤其方便。下面就是一个例子:

  mysql> SELECT COALESCE(NULL, 'bat', 12, NULL);

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

  | COALESCE(NULL, 'bat', 12, NULL)  |

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

  | bat                                |

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

  1 row in set (0.02 sec)

  INTERVAL

  INTERVAL运算符提供另外一种对数字及其范围的控制。它接受一个数字列表(N0, N1, N2...),将N0与剩下的所有数字比较,返回大于N0的最小数字所处的位置索引。数字N1, N2...必须按升序排列。

  看看下面的例子,它将数字24与列表里的数字(5, 10, 15, 20, 25, 30)进行比较:

  mysql> SELECT INTERVAL (24, 5, 10, 15, 20, 25, 30);


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

  | 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]

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何查证JBL耳机的真假信息如何查证JBL耳机的真假信息Dec 29, 2023 pm 10:54 PM

jbl耳机是很多听音乐用户的首选,好评如潮,但是对于假货大家还是非常的害怕的,那么jbl耳机怎么查询真伪来避免这个问题呢?下面就看看怎么查询吧。jbl耳机怎么查询真伪:1、首先进入“中国商品信息验证中心”。2、然后输入查询码,即可查看是否正确从而判断是不是真货。3、也可以去通过耳机声音的清晰度来进行分辨。正牌的耳机声音是非常的清晰的,音质也不会出现改变。假牌的耳机声音会有很多的掺杂,音质也是特别的差。4、大家可以将自己的耳机声音开到最大,看看是不是很和谐,真耳机声音都是一样的。但是假耳机的声音开

steam怎么查询账号idsteam怎么查询账号idFeb 07, 2024 pm 12:09 PM

Steam是一个整合游戏下载平台,玩家可以在该平台上购买正版的游戏,也可以跟其他玩家进行沟通讨论交流。有小伙伴知道steam怎么查询账号id吗,下面小编就给大家详细介绍一下steam查询账号id的方法,有需要的小伙伴可以来看一看。查询方法:1、双击打开软件,点击上方菜单栏中的"查看"。2、然后点击下方选项列表中的"设置"。3、在打开的窗口界面中,点击左侧栏中的"账户"选项,然后找到右侧中的"账户名称"即可查询到账号id。

买过比特币怎么查询,怎么看自己买没买过比特币买过比特币怎么查询,怎么看自己买没买过比特币Feb 04, 2024 am 08:09 AM

现在怎么买比特币的800字公众号文章随着比特币的价格飙升,越来越多的人开始关注比特币,也有越来越多的人想要投资比特币。但是,投资比特币也是有风险的,所以在投资之前,需要了解相关知识,并做好风险控制。那么现在怎么买比特币呢?首先,为了投资比特币,您需要准备一个比特币钱包。比特币钱包是一种软件,用于存储、发送和接收比特币资金。根据您的需求,有多种类型的比特币钱包可供选择,例如硬件钱包、软件钱包和网络钱包。每种钱包都有其独特的特点,您可以根据自己的需求选择适合自己的。其次,你需要选择一个可靠的比特币交

PHP如何查询Oracle数据库中的数据PHP如何查询Oracle数据库中的数据Jul 13, 2023 pm 07:34 PM

PHP如何查询Oracle数据库中的数据随着互联网时代的到来,网站和应用程序的开发越来越普遍。而数据库作为数据存储和管理的关键技术,也成为了开发者们必备的工具之一。其中,Oracle数据库作为一款功能强大、稳定可靠的关系型数据库管理系统,在企业级应用中得到了广泛应用。而在开发网站或应用程序时,如何使用PHP进行Oracle数据库的查询是一个非常重要的问题。在

PHP表单处理:表单数据查询与筛选PHP表单处理:表单数据查询与筛选Aug 07, 2023 pm 06:17 PM

PHP表单处理:表单数据查询与筛选引言在Web开发中,表单是一种重要的交互方式,用户可以通过表单向服务器提交数据并进行进一步的处理。本文将介绍如何使用PHP处理表单数据的查询与筛选功能。表单的设计与提交首先,我们需要设计一个包含查询与筛选功能的表单。常见的表单元素包括输入框、下拉列表、单选框、复选框等,根据具体需求进行设计。用户在提交表单时,会将数据以POS

查询从节点X开始,距离最多为D的子树中的最小权重查询从节点X开始,距离最多为D的子树中的最小权重Aug 25, 2023 am 11:25 AM

在进行计算机编程时,有时需要求出源自特定节点的子树的最小权重,条件是该子树不能包含距离指定节点超过D个单位的节点。这个问题出现在各个领域和应用中,包括图论、基于树的算法和网络优化。子树是较大树结构的子集,指定的节点作为子树的根节点。子树包含根节点的所有后代及其连接边。节点的权重是指分配给该节点的特定值,可以表示其重要性、重要性或其他相关指标。在这个问题中,目标是找到子树中所有节点中的最小权重,同时将子树限制在距离根节点最多D个单位的节点。在下面的文章中,我们将深入研究从子树中挖掘最小权重的复杂性

如何通过优化查询中的LIKE操作来提高MySQL性能如何通过优化查询中的LIKE操作来提高MySQL性能May 11, 2023 am 08:11 AM

MySQL是目前最流行的关系型数据库之一,但是在处理大量数据时,MySQL的性能可能会受到影响。其中,一种常见的性能瓶颈是查询中的LIKE操作。在MySQL中,LIKE操作是用来模糊匹配字符串的,它可以在查询数据表时用来查找包含指定字符或者模式的数据记录。但是,在大型数据表中,如果使用LIKE操作,它会对数据库的性能造成影响。为了解决这个问题,我们可

MySQL中如何进行数据的时序存储和查询?MySQL中如何进行数据的时序存储和查询?Jul 30, 2023 pm 03:09 PM

MySQL中如何进行数据的时序存储和查询?在许多应用场景中,对于数据的时序性要求是非常常见的,比如传感器数据的监测、日志记录等。MySQL作为一种常用的关系型数据库,也提供了一些方法来进行时序数据的存储和查询。一种常见的方法是使用时间戳字段来存储数据的时间信息。在MySQL中,可以使用TIMESTAMP或DATETIME类型的字段来存储时间。TIMESTAM

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.