`
Justanding
  • 浏览: 1156 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

mysql 比较函数浅用

阅读更多

 

 今天在操作数据库时,遇到一个问题:修改表中某条数据,比较某个字段原有值和修改值,如果原有值大于修改值,则这个字段不修改,从而引出了是用mysql的比较函数;

举个例子,我现在有一个users表,其中字段分别为id,name,age,sex,id是key。

表中原有数据如下:

 

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

| id | name | age  | sex  |

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

| 16 | yang | 5      | s     |

| 17 | hang | 4      | m    |

我想修改id=16的用户的年龄,如果要现今age的值是大于插入数据的值,则不修改。这时我们可以使用mysql的比较函数greatest函数,sql语句为:“ update users set age=greatest(age,10) where id=16”,修改后数据表如下:

 

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

| id | name | age  | sex  |

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

| 16 | yang | 10   | s    |

| 17 | hang | 4    | m    |

如果使用on duplicate key update也是能执行的。如 insert into users (id,name,age,sex)  values(16,'tang',12,sex='f') on duplicate key update name='tang',age=greatest(age,16),sex='f';

这句语句是向表中插入数据,如果已存在此key,则修改这条数据(on duplicate key update的用法),执行结果如下:

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

| id | name | age  | sex  |

 

| 16 | tang | 16   | f      |

| 17 | hang | 4    | m    |

 

 

同理select中也是可以用的。此外比较函数还有least。

来自mysql文档中的说明:

GREATEST(value1,value2,...)当有2或多个参数时,返回值为最大(最大值的)参数

 

LEAST(value1,value2,...)

在有两个或多个参数的情况下, 返回值为最小 (最小值) 参数

用一下规则将自变量进行对比:

  •  
    • 假如返回值被用在一个 INTEGER 语境中,或是所有参数均为整数值,则将其作为整数值进行比较。
    • 假如返回值被用在一个 REAL语境中,或所有参数均为实值,则 将其作为实值进行比较。
    • 假如任意一个参数是一个区分大小写的字符串,则将参数按照区分大小写的字符串进行比较。
    • 在其它情况下,将参数作为区分大小写的字符串进行比较。

假如任意一个自变量为NULL,则GREATEST()和 LEAST()的返回值为NULL 

 

mysql> SELECT LEAST(2,0);

        -> 0

mysql> SELECT LEAST(34.0,3.0,5.0,767.0);

        -> 3.0

mysql> SELECT LEAST('B','A','C');

        -> 'A'

 

 

暂时用到这么多,后面用上继续补上。

 

 

 

 

 

分享到:
评论

相关推荐

    mysql深入浅出

    《MySQL深入浅出》这份讲义全面覆盖了MySQL的基础知识,包括SQL语法、运算符、函数、字符类型以及存储过程等多个重要主题。以下是对这些关键知识点的详细解释: 1. **SQL基础**:SQL(Structured Query Language)...

    浅谈mysql 自定义函数

    MySQL自定义函数是数据库系统中一个非常实用的功能,允许用户根据特定需求编写自己的函数,以扩展MySQL的标准功能集。在上述描述中,我们看到如何创建一个简单的MySQL自定义函数,名为`onlineFunction`,用于根据...

    浅谈Mysql中类似于nvl()函数的ifnull()函数

    mysql> select IFNULL(1,0); -> 1 mysql> select IFNULL(0,10); -> 0 mysql> select IFNULL(1/0,10); -> 10 mysql> select IFNULL(1/0,'yes'); -> 'yes' IF(expr1,expr2,expr3) 如果expr1是TRUE(expr1<>0

    浅谈Mysql中类似于nvl()函数的ifnull()函数.pdf

    浅谈Mysql中类似于nvl()函数的ifnull()函数 IFNULL()函数是Mysql中一个非常有用的函数,它可以用来检查某个表达式是否为空,如果为空则返回另一个表达式的值。IFNULL()函数的语法为IFNULL(expr1, expr2),其中...

    MySQL排错指南

    《MySQL排错指南》由Oracle公司的技术支持工程师编写,详细阐述了MySQL故障诊断及处理中的知识,教会读者如何深入浅出地定位、分析并解决各种MySQL数据库的故障。 《MySQL排错指南》共分为7章,其内容涵盖了解决...

    Mysql数据库从入门到精通.rar

    7.MySQL中的字符串比较函数 8.MySQL中字符串函数详细介绍 9.都出深入SELECT语句的查询功能 10.浅谈MySQL存储引擎选择InnoDB还是MyISAM 11.浅谈unique列上插入重复值的MySQL解决方案 12.深入了解MySQL 5.5分区功能...

    浅谈mysql_query()函数的返回值问题

    这是因为`mysql_free_result()`函数是用来释放由`mysql_query()`产生的结果集资源,以防止内存泄漏。但是,对于不返回结果集的SQL语句,调用`mysql_free_result()`是没有必要的,因为没有结果集需要释放。在这种情况...

    浅谈mysql可有类似oracle的nvl的函数

    答案是肯定的,MySQL 提供了 `IFNULL` 函数,它与 Oracle 的 `NVL` 函数具有相似的功能。 `NVL` 函数是 Oracle 数据库特有的,它的基本用法是 `NVL(expression1, expression2)`。如果 `expression1` 为 NULL,`NVL`...

    mysql深入浅出入门基础讲义

    MySQL深入浅出入门基础讲义 本资源摘要信息是关于MySQL数据库的基础知识讲义,适合新入门程序员使用。下面是对标题、描述、标签和部分内容的详细解释和知识点总结。 标题解释 MySQL深入浅出入门基础讲义是关于...

    深入浅出MySQL-读书笔记byCZF

    存储过程和函数是数据库中封装的代码块,允许存储复杂的逻辑并能够被重复使用。触发器则是响应数据库表中的数据变化(如INSERT、UPDATE、DELETE)而自动执行的一段代码。它们可以有效地帮助管理和维护数据库的完整性...

    浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解

    本文将深入探讨SQL Server的`ISNULL`函数和MySQL的`IFNULL`函数,帮助读者理解和掌握它们的用法。 **SQL Server的ISNULL函数** `ISNULL`函数在SQL Server中用于检查一个表达式是否为NULL,并根据需要替换为指定的...

    浅谈mysql中concat函数,mysql在字段前/后增加字符串

    除了`CONCAT()`和`CONCAT_WS()`,MySQL还提供了`GROUP_CONCAT()`函数,它主要用于聚合查询,将一组记录中的某个字段值合并成一个字符串,每个值之间用指定的分隔符分隔。例如,在表`aa`中,我们可以按`id`字段分组,...

    PHP5中文函数手册+MySQL中文参考手册+CSS2.0中文手册含索引+javascript中文手册(打包下载)

    这个压缩包包含的是四个重要的IT资源,分别是PHP5中文函数手册、MySQL中文参考手册、CSS2.0中文手册以及JavaScript中文手册。这些手册是学习和掌握这四种技术的基础工具,对于开发者来说尤其宝贵。 首先,PHP5中文...

    MySQL8.0窗口函数入门实践及总结

    本文将通过具体的示例,深入浅出地讲解MySQL8.0窗口函数的基本用法。 首先,我们需要了解什么是窗口函数。窗口函数允许我们在一个结果集(窗口)内执行计算,这个窗口可以是整个查询结果,也可以是根据特定条件定义...

    mysql 5.6 教程详解

    本教程旨在深入浅出地介绍MySQL 5.6的各个方面,包括但不限于其安装、配置、管理以及使用。 首先,关于MySQL 5.6官方手册,它详细记录了从MySQL 5.6到5.6.28的版本内容,以及基于NDB 7.3和7.4版本的MySQL Cluster的...

    深入浅出Mysql优化性能提升.txt

    14-伪哈希函数降低索引长度.wmv 15-大数据量分页优化.wmv 16-索引与排序.wmv 17-冗余索引与重复索引.wmv 18-索引碎片修复.wmv 19-Explain分析SQL效果.wmv 20-In型子查询陷阱.wmv 21-Exists一定比子查询慢吗.wmv 22-...

    MySQL数据库面试题(2024最新版)-重点.docx

    存储过程、函数和触发器能够帮助我们封装复杂的操作,避免在应用层重复编写相同的代码。它们的定义、特点和使用也是面试官常问的内容。 在SQL语句的类别、六种关联查询、子查询、数据类型的区别、数据操作语句以及...

Global site tag (gtag.js) - Google Analytics