shell指令碼操作mysql資料庫刪除重複的資料

2022-09-26 14:24:16 字數 1271 閱讀 2079

由於之前的業務,造www.cppcns.com成資料庫上產生了髒資料,寫個指令碼刪除重複的資料。由於是開發測試環境,所以選擇任意刪除相同uid中的一條。由於每次執行只刪除重複資料的一條,需要重複執行,如果本輪沒有資料被刪就ok

#!/bin/sh

# delete all company's duplicate uid

mysql_bin_path=/data/mysql/server/mysql_3306/bin

mysql_sock_path=/data/mysql/server/mysql_3306/tmp

dbuser=dbuser

dbpwd=userpwd

dbhostname=19vuymetwww.cppcns.com2.168.1.105vuymet

port=3306

# get all company_id

for company_id in `$/mysql -u$ -p$ -h $ -p $ --socket=$/mysql.sock -e "

select company_id from company.companypage;"`

do if [ $company_id != "company_id" ] ; then

# if [ $company_id -eq 2733 ] ; then

suffix=`expr $ % 100`

for user_id in `$/mysql -u$ -p$ -h $ -p $ --socket=$/mysql.sock -e "

select user_id from company.company_candidate_$ where company_id=$ and user_id>0 group by company_id, user_id h**ing count(user_id) > 1;"`

do if [ $user_id != "user_id" ] ; then

$/mysql -u$ -p$ -h $ -p $ --socket=$/mysql.s程式設計客棧ock -e "

delete from company.company_candidate_$ where company_id=$ and user_id=$ limit 1;"

echo "delete from company_candidate_$ where company_id=$ and user_id=$ limit 1"

fi done

# fi

fidone

exit 0

總結

通過shell指令碼批量操作mysql資料庫

建立建表語句 學生表 student sno,sname,s sage,sdept 學號 主鍵,姓名,性別,年齡,所在系 create table student sno int 10 not null comment 學號 sname varchar 16 not null comment 姓名 ...

shell指令碼操作MySQL資料庫

搬運出處 mysql hhostname pport uusername ppassword e 相關mysql的sql語句,不用在mysql的提示符下執行mysql,即可以在shell中操作mysql的方法。bin bash hostname 192.168.111.84 資料庫資訊 port 3...

shell指令碼redis操作

指令碼分2部,redis查詢出所需要的key,然後遍歷key查詢出所有的value追加到檔案中 想法 本來是要迴圈遍歷滿足條件key的結果集的,但是失敗了,所有就直接儲存到檔案中,讀取檔案每一行的結果,用這個結果查詢value儲存到新檔案中 進一步優化 因為key的type不同的原因,所有其實可以選...