如何通过PyMSQL在UPDATE语句中获取受影响的行

时间:2016-08-26 10:10:03

标签: python mysql pymysql

看标题,我需要通过PyMYSQL更新mysql数据库上的一些行,我想知道已经更改了多少行。

代码: import pymysql db = pymysql.connect(xxxx) cur = db.cursor() sql = "update TABLE set A = 'abc' where B = 'def'" cur.execute(sql, params) db.commit()

2 个答案:

答案 0 :(得分:9)

Mysql提供了一个特殊的调用,可以帮助您实现这一目标:execute。此功能在更新时特别有用,因为它只返回受影响的行数,而不是更新值相似的行数。文档为here

如何在Python中使用它? affected_rows = cur.execute(sql, params) width: 50px; padding-left: 50px;命令会将此返回给您。

NSMutableArray* arr1 = [NSMutableArray arrayWithObjects: @"A", @"C", @"E", nil];
    NSMutableArray* arr2 = [NSMutableArray arrayWithObjects: @"B", @"D", @"F", nil];
    NSUInteger maxCount = arr1.count > arr2.count ? arr1.count : arr2.count;
    NSMutableArray* animals = [[NSMutableArray alloc] init];

    for (int i=0; i<maxCount; i++)
    {
        if (i<arr1.count) {
            [animals addObject:[arr1 objectAtIndex:i]];
        }
        if (i<arr2.count) {
            [animals addObject:[arr2 objectAtIndex:i]];
        }

    }

答案 1 :(得分:5)

执行阶段后,您可以cursor.rowcount执行此操作。 Ff的返回值与0相反,表示一行或多行受到影响。