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

时间:2010-04-13 09:11:30

标签: mysql shell

我无法弄清楚如何让mysql客户端在运行删除时返回删除给shell的行数。有谁知道什么选项会启用这个?或者围绕它的方式?

这是我正在尝试的,但我没有输出:

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

我期待这样的东西作为mysql的输出:

deleted
999999

这就是为什么我有尾巴-n 1所以我只拿起计数而不是列名。

手动运行命令时(mysql mydb -e“从mytable中删除inserttime&lt;'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 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

添加“-vv”

mysql mydb -e“从mytable中删除inserttime&lt;'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

答案 2 :(得分:0)

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


 int icount = mysql_CountRow(deleted);

它对我有用。试试这个。