需求: 查询/更新某列(id) 最大值的行.
尝试1:
select * from table where id =max(select max(id) from table); --可以通过
update table set name='new name' where id =max(select max(id) from table); --不能可以通过
不能通过原因 ,求解释?
尝试2: 通过用户变量:(可行)
select @maxid :=max(id) from hchkpage;
update hchkpage set payeename = 'new name' where id =@maxid;
此方法可行, 局限在数据库客户端, 在程序中不能使用.
通过参考mysql官方文档:
http://dev.mysql.com/doc/refman/5.1/zh/index.html
http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#update
想到此方法:
update hchkpage set payeename='good' order by id desc limit 1;
:通过条件排序和使用limit限制查询条数可取得最大行 ,执行更新.
总结: 遇到问题参考官方文档.
分享到:
相关推荐
本文是mysql 数据库 问题一 将表一的数据导入表二...在表中插入数据时,某一字段取数据库中该字段的最大值,并+1,这个问题很多人都说用存储过程什么的解决,其实使用insert 和 select 结合就可以很好的解决这个问题啊
- 作用:确保列或列组合的值是唯一的。 - 特性:一个表可以有多个唯一约束,允许包含空值(`NULL`)。 - **区别**: - 主键是唯一约束的一种特殊情况,但同时具有不可为空的限制。 - 主键在创建时会自动建立索引,...
本篇文章详细介绍了如何使用MySQL实现分组取n条最大记录的功能。通过精心设计的SQL查询语句,我们可以有效地解决这类问题。这种方法不仅适用于上述具体场景,还可以扩展应用于其他类似的需求,例如按不同标准分组并...
在MySQL学习过程中,掌握如何查询一个字段中相同属性的最大值是一项基本且重要的技能。这个问题的背景是解决腾讯面试中的一道题目,目的是找出学生各科成绩中的最高分。本篇文章将介绍两种方法来实现这个目标。 ...
SUM 函数用于计算数据的总和,MAX 函数用于取得最大值,COUNT 函数用于计算数据的行数,AVG 函数用于计算数据的平均值。 2.游标声明 在 MySQL 中,DECLARE CURSOR 语句用于声明游标。游标用于在 SELECT 语句中...
一、函数功能:对字符串进行分隔数组,取指定顺序位置的子字符串,支持左右双向获取,支持默认值返回,附有测试用例 二、函数格式:fn_get_split_val(in_str varchar,in_delimiter varchar,in_order int,in_default ...
如果是直接在数据库拉取 from django.db.models import Max Argument.objects.all().aggregate(Max(‘rating’)) 如果是从已经存在的model列表获取 from django.db.models import Max args = Argument.objects....
每个类型的存储需求取决于列值的实际长度(用前面的表中的L表示),而不是该类型的最大可能的大小。例如,VARCHAR(10)列可以容纳最大长度为10的字符串。实际存储需求是字符串(L)的长度,加上一个记录字符串长度的字节...
Oracle 和 MySQL 在处理自动增长列(通常用于主键ID)方面有着显著的差异。自动增长列主要用于确保每个新插入的行都有一个唯一的标识符。在MySQL中,这个过程相对直接,而在Oracle中则需要借助序列(sequence)来实现...
- `Max()`: 获取最大值。 - `Min()`: 获取最小值。 - `Count()`: 计算记录数。 - 特别注意: 所有的分组函数都会忽略`NULL`值。 **流程控制函数**: - `If()`: 根据条件执行不同的操作。 - `Case` 表达式: 提供更复杂...
MyISAM表在数据文件中保存了自增主键的最大值,即使删除记录,重启后仍会从18开始。然而,InnoDB表只在内存中保存这个最大值,因此删除记录并重启后,新插入的记录ID将是15。 2. MySQL的技术特点包括:多线程支持、...
对于MyISAM引擎,如果设置的值小于等于已使用过的最大值,自增列会自动设置为当前最大值加1;而InnoDB则不会改变初始值。 2. **通过`DROP`和`CREATE`重建表** 这种方法将完全删除原有表,然后创建一个结构相同的...
在 MySQL 中,自增主键的行为取决于表类型。如果表类型是 MyISAM,那么自增主键的最大 ID 会记录到数据文件中,即使重启 MySQL 也不会丢失。但是,如果表类型是 InnoDB,那么自增主键的最大 ID 只记录到内存中,重启...
这包括查询表的ID最大值、记录总数以及自增(Auto_increment)值。这些数据在网站开发、数据分析和系统维护中都有广泛的应用。以下是一些常用的方法: 1. **获取当前字段的最大ID值** 要获取一个表中某个字段...
- **每表最大列数**: Oracle MySQL最多支持1000列,而MySQL支持的列数更多,最高可达4096列。 - **最大Blob/Clob大小**: Oracle MySQL的最大Blob/Clob大小为128TB,而MySQL的最大Blob/Clob大小为4GB。 - **最大CHAR...
# 你的操作系统在这个队列大小上有它自己的限制(可以检查你的OS文档找出这个变量的最大值),试图设定back_log高于你的操作系统的限制将是无效的。 max_connections = 500 # MySQL的最大连接数,如果服务器的并发...
3. **SQL函数**:SQL语言提供了各种内置函数,如`SUM`用于求和,`MAX`用于获取最大值。例如,问题中的第3题和第4题分别对应了这两个函数。 4. **通配符**:在SQL中,`%`是一个通配符,可以代表任意数量的字符,如第...
- `MAX()`:找到指定列的最大值。例如,找出工资最高的员工:`SELECT e_name FROM employee WHERE e_wage = (SELECT MAX(e_wage) FROM employee)`。 - `MIN()`:找出指定列的最小值。 - `SUM()`:计算一组数值的...
如果你增加 MONTH、YEAR_MONTH 或 YEAR,并且结果日期的天比新月份的最大天数还大,那么它将被调整到新月份的最大天数: mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH); -> 1998-02-28 注意,上面的例子...
MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度 5.BLOB TEXT类型,最大长度为(2^16-1)个字符。 6...