我正在尝试使用选项从 bash 脚本捕获 mysql 表中删除的行数--execute
,但似乎不起作用。我回答了一些问题,其中提到使用选项,它可以工作,但没有达到预期的效果。我使用了 mysql 命令和awk 和 sed-vv
的各种组合,但似乎没有任何效果。-vvv --silent
--skip-column-names
MySQL 客户端是mysql Ver 8.0.39 for Linux on aarch64 (MySQL Community Server - GPL)
如何在使用 MySQL -e,--execute 时输出 UPDATE/INSERT 查询结果?
以下是代码
deleted=$(mysql --login-path=lp1 --init-command="SET SQL_LOG_BIN = 0" -vv --silent --skip-column-names db -e "delete from table1 where column1 date_format('2022-04-01 00:00:00','%Y-%m-%d 00:00:00') and date_format('2023-03-31 23:59:59','%Y-%m-%d 23:59:59') order by column1 limit 20;")
echo ${deleted}
该语句删除了某些行,但打印了如下输出
-------------- delete from table1 where column1 between date_format('2022-04-01 00:00:00','%Y-%m-%d 00:00:00') and date_format('2023-03-31 23:59:59','%Y-%m-%d 23:59:59') order by column1 limit 20 -------------- Query OK, 20 rows affected -------------- 1 row in set Bye
如果我再添加一行来获取 row_count,那么它会给我 -1
mysql --login-path=${LP_wallet_0} -e "select row_count()"
即使我在同一个删除查询中尝试 row_count(),它只会附加此行select row_count() -------------- 2 1 row in set Bye
--vv --silent --skip-column-names
我尝试了和awk
和也是的不同组合sed
,但无法得到计数。