Home » Mysql » How to get number of rows affected, while executing MySQL query from bash?

How to get number of rows affected, while executing MySQL query from bash?

Posted by: admin November 1, 2017 Leave a comment

Questions:

I know how one can execute MySQL queries / commands from bash:

mysql -u[user] -p[pass] -e "[mysql commands]"

or

mysql -u[user] -p[pass] `<<`QUERY_INPUT

[mysql commands]

QUERY_INPUT

How can I capture how many rows were affected by the query?
I tried doing:

variable='`mysql -u[user] -p[pass] -e "[mysql commands]"`'

It does execute the command but it does not return the number of affected rows.

Answers:

Put

SELECT ROW_COUNT();

as the last statement in your batch and parse the output

Questions:
Answers:

I might have answered myself the question, been looking at the parameters, and aparently using “-v -v -v” as parameters to the mysql command forces it to be more verbose and it spits out how many rows where affected.

Questions:
Answers:

Not an answer, but useful addition, you also could try the other MySQL information functions ( which include ROW_COUNT() ) to give you specific information you require.
See MySQL reference here