当前位置: 首页 > 面试题库 >

MySQL使用递增变量更新字段

孔志强
2023-03-14
问题内容

我的一个数据库中有一个名为“ textile_events”的表。

mysql> describe textile_events;

+-------------+--------------+-----+---------+----------------+
| Field       | Type         | Key | Default | Extra          |
+-------------+--------------+-----+---------+----------------+
| id          | int(11)      | PRI | NULL    | auto_increment |
| token       | varchar(20)  |     | NULL    |                |
| reg_time    | datetime     |     | NULL    |                |
| eid         | varchar(20)  |     | NULL    |                |
| fname       | varchar(20)  |     | NULL    |                |
| lname       | varchar(20)  |     | NULL    |                |
| paid        | varchar(10)  |     | NULL    |                |
| seq_no      | int(11)      |     | NULL    |                |
+-------------+--------------+-----+---------+----------------+
8 rows in set (0.00 sec)

mysql> select count(*) from textile_events;

+----------+
| count(*) |
+----------+
|     9325 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*) from textile_events where eid = 'headsup' ;

+----------+
| count(*) |
+----------+
|     2553 |
+----------+
1 row in set (0.01 sec)

昨天,“ seq_no”字段被引入到上表中。

现在,对于所有付费字段等于“已付费”的“平头”事件,我需要为“ seq_no”字段分配一个递增编号。

换句话说,我正在寻找这样的东西,

$i = 250
while( true ):
    $i++
    UPDATE textile_events SET 'seq_no' = $i 
        WHERE eid = 'headsup' AND paid = 'paid'
endwhile;

如何仅将满足特定条件的Recod分配给新引入的字段一个递增编号?

有哪些可用的选项,最有效的方法是什么?


问题答案:

您是否正在寻找这样的东西?

UPDATE textile_events e,
       (SELECT @n := 249) m
   SET e.seq_no = @n := @n + 1 
    WHERE e.eid = 'headsup' AND e.paid = 'paid'

SQLFiddle



 类似资料:
  • 问题内容: 好吧,对于我正在做的事情,我需要增加变量名称,例如,int Taco1 = 23432 ..... int Taco2 = 234235656 ..... int Taco3 = 11111 ....... 但是我需要它是一个像 尝试让我的变量名每次自动递增1,这样它们就不会覆盖自己。如果这不可能,那么我深表歉意。 问题答案: 您不能用Java做到这一点,更重要的是,您不想这样做,因为

  • 对于二进制搜索树,我只能访问根节点,而我正在尝试编写一个递归方法来挖掘其左节点。 例如 root.left(); 成为 根左()。左(); 然后, 根左()。左(); 你看这是怎么回事...有没有递归的方法来更改/添加到变量中?

  • 问题内容: 我已将此代码用于提供+1分,但无法正常工作。 $ points变量现在是用户的点数。.我希望它加上一个点数。.例如,如果他有5个点数,它应该是5 + 1 =6。 但是没有,它只是改变了到1 我做错了什么?谢谢 问题答案: 您也可以这样做:

  • 问题内容: 我在PostgreSQL中有一个表,该表具有应该是唯一的ID列。但是,当前许多行(大约300万行)的ID为“ 1”。 我知道的: 总行数 ID列的当前最大值 ID(不正确)为“ 1”的行数 我需要的是一个查询,该查询将提取ID为“ 1”的所有行,并为其分配一个新ID,该ID自动递增,以便表中的每一行都具有唯一的ID。我希望它从开始,并为每行分配后续ID。 这是我得到的最接近的查询: 问

  • 问题内容: 我正在尝试使用Meteor进行如下更新: 但是我在努力如何动态设置方向的数组索引,就像这样: 这不起作用,因为[index]被包装在字符串中。我还尝试形成一个自定义字符串,如下所示: 但这是行不通的。关于如何执行此操作的任何想法? 问题答案: 您需要以编程方式构建对象: 更新资料 如果您的JavaScript环境支持计算出的属性名称(例如,node.js 4+),则可以一步完成:

  • 问题内容: 如何批量更新mysql数据?如何定义这样的事情: 具有一些值,例如: 和其他值: 也许用mysql是不可能的?一个PHP脚本? 问题答案: 在这种情况下,最简单的解决方案是使用构造。它的工作速度非常快,并且可以轻松完成工作。 或使用建筑