见贤思小齐,知足常乐呵

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. mysql --help

-h  : ip/host

-u  : 用户名

-p  : 密码

-P  : 端口

-D  : 指定库

-e  : 指定sql语句

-t  : 查询结果按表格展示

-c, --comments :     Preserve comments. Send comments to the server. The default is --skip-comments (discard comments), enable with --comments.

                (注释也显示出来, 没有此项,存储过程创建时会丢失原有注释)

-N  : --skip-column-names Don't write column names in results.

 

2. mysql执行完查询,结果是一行。如何截取某一列的值?

result=`mysql -h -P -u -p -D -N -e"{query}"`

echo $result
echo $result | awk '{print $1}'

##获取第一列的值,默认是tab分隔符
var1=`echo $result | awk '{print $1}'`

 

3.  sql文件可以在连接mysql命令后,通过source + 文件名命令执行成功

此时要注意delimiter的问题,默认的delimiter为; (mysql --help)

若一个存储里含有多个; 会被截断成几段分开执行,而不是一个完整的存储

  • 可以在开头修改分隔符为 //,执行完毕后修改回去
delimiter //

-- 这里是你的存储开始
CREATE PROCEDURE `rp_patient_indicator_result`()
BEGIN

insert into rp_dag_sdu_log(run_time,task_number,status,result_code,result_msg,create_time) values (DATE_FORMAT(sysdate(),'%Y-%m-%d-%H'),vv_task_number,0,code,msg,SYSDATE());

-- -----------------
//
delimiter ;

 参考: https://blog.csdn.net/yuxin6866/article/details/52722913

 3. source的等价方式

  • mysql -h$Mysql_server -u$Mysql_user -p$Mysql_pswd -P$Mysql_port连接后,source + sql文件
  • mysql -h$Mysql_server -u$Mysql_user -p$Mysql_pswd -P$Mysql_port -D$executeDB -c <"${sql文件路径}"
  • mysql -h$Mysql_server -u$Mysql_user -p$Mysql_pswd -P$Mysql_port -D$executeDB -e"${sql语句存在变量里}"
posted on 2020-03-30 14:46  Suckseedeva  阅读(934)  评论(0编辑  收藏  举报