代码之家  ›  专栏  ›  技术社区  ›  simonlord

如何在shell脚本中获取从mysql删除的行数

  •  2
  • simonlord  · 技术社区  · 15 年前

    我不知道如何让mysql客户端在运行delete时将删除的行数返回给shell。有人知道什么选项可以实现这一点吗?或者绕着它转?

    这是我正在尝试的,但没有结果:

    #!/bin/bash
    deleted=`mysql mydb -e "delete from mytable where insertedtime < '2010-04-01 00:00:00'"|tail -n 1`
    

    我希望mysql的输出是这样的:

    deleted
    999999
    

    这就是为什么我有tail-n 1,所以我只取计数而不取列名。

    手动运行命令(mysql mydb-e“delete from mytable where insertedtime<'2010-04-01 00:00:00')时,没有输出。在运行mysql客户端时以交互方式运行命令时,请执行以下操作:

    mysql>delete from mytable where insertedtime < '2010-04-01 00:00:00';
    Query OK, 0 rows affected (0.00 sec)
    

    我想把受影响的行数放入shell变量中。

    任何帮助都将不胜感激。

    3 回复  |  直到 12 年前
        2
  •  1
  •   Community CDub    8 年前

    添加“-VV”

    mysql mydb-e“从mytable中删除插入时间<'2010-04-01 00:00:00'-vv

    https://dba.stackexchange.com/questions/23527/how-can-you-output-update-insert-query-results-when-using-mysql-e-execute

        3
  •  0
  •   Badr    15 年前
     deleted=`mysql mydb -e "delete from mytable where insertedtime < '2010-04-01 00:00:00'"|tail -n 1`
    
    
     int icount = mysql_CountRow(deleted);
    

    这对我有用试试这个。