shell腳本操作mysql數(shù)據(jù)庫刪除重復(fù)的數(shù)據(jù)
由于之前的業(yè)務(wù),造成數(shù)據(jù)庫上產(chǎn)生了臟數(shù)據(jù),寫個(gè)腳本刪除重復(fù)的數(shù)據(jù)。由于是開發(fā)測試環(huán)境,所以選擇任意刪除相同uid中的一條。由于每次執(zhí)行只刪除重復(fù)數(shù)據(jù)的一條,需要重復(fù)執(zhí)行,如果本輪沒有數(shù)據(jù)被刪就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=192.168.1.105 PORT=3306 # get all company_id for company_id in `${MYSQL_BIN_PATH}/mysql -u${DBUSER} -p${DBPWD} -h ${DBHOSTNAME} -P ${PORT} --socket=${MYSQL_SOCK_PATH}/mysql.sock -e " SELECT company_id FROM company.companypage;"` do if [ $company_id != "company_id" ] ; then # if [ $company_id -eq 2733 ] ; then suffix=`expr ${company_id} % 100` for user_id in `${MYSQL_BIN_PATH}/mysql -u${DBUSER} -p${DBPWD} -h ${DBHOSTNAME} -P ${PORT} --socket=${MYSQL_SOCK_PATH}/mysql.sock -e " SELECT user_id FROM company.company_candidate_${suffix} WHERE company_id=${company_id} AND user_id>0 GROUP BY company_id, user_id HAVING COUNT(user_id) > 1;"` do if [ $user_id != "user_id" ] ; then ${MYSQL_BIN_PATH}/mysql -u${DBUSER} -p${DBPWD} -h ${DBHOSTNAME} -P ${PORT} --socket=${MYSQL_SOCK_PATH}/mysql.sock -e " DELETE FROM company.company_candidate_${suffix} WHERE company_id=${company_id} and user_id=${user_id} limit 1;" echo "delete from company_candidate_${suffix} where company_id=${company_id} and user_id=${user_id} limit 1" fi done # fi fi done exit 0
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- mysql刪除重復(fù)記錄語句的方法
- MySQL中查詢、刪除重復(fù)記錄的方法大全
- mysql查找刪除重復(fù)數(shù)據(jù)并只保留一條實(shí)例詳解
- MySQL 刪除數(shù)據(jù)庫中重復(fù)數(shù)據(jù)方法小結(jié)
- MySQL查詢重復(fù)數(shù)據(jù)(刪除重復(fù)數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))
- MySQL數(shù)據(jù)庫中刪除重復(fù)記錄的方法總結(jié)[推薦]
- mysql刪除表中某一字段重復(fù)的記錄
- mysql查找刪除表中重復(fù)數(shù)據(jù)方法總結(jié)
- mysql刪除重復(fù)行的實(shí)現(xiàn)方法
- mysql數(shù)據(jù)庫刪除重復(fù)數(shù)據(jù)只保留一條方法實(shí)例
相關(guān)文章
linux shell循環(huán):for、while、until用法詳解
這篇文章主要介紹了linux shell下常用的循環(huán)for、while、until的用法,這也是腳本之家小編看到的比較詳細(xì)的文章了,感興趣的朋友可以參考一下,最好是在環(huán)境下自己手工打一份,不要復(fù)制2019-04-04linux shell 邏輯運(yùn)算符、邏輯表達(dá)式詳細(xì)介紹
shell的邏輯運(yùn)算符 涉及有以下幾種類型,因此只要適當(dāng)選擇,可以解決我們很多復(fù)雜的判斷,達(dá)到事半功倍效果2014-02-02shell腳本實(shí)現(xiàn)數(shù)據(jù)庫表增量同步的流程
這篇文章主要介紹了shell腳本實(shí)現(xiàn)數(shù)據(jù)庫表增量同步的流程,流程也很簡單,通過獲取axt_statistics 庫的 zxxt_class 表中id字段的最大id值,具體腳本跟隨小編一起看看本文吧2021-10-10shell檢測某個(gè)文件/文件夾是否存在詳細(xì)實(shí)例
shell是一個(gè)用?C?語言編寫的程序,它是用戶使用Linux的橋梁,下面這篇文章主要給大家介紹了關(guān)于shell檢測某個(gè)文件/文件夾是否存在的相關(guān)資料,需要的朋友可以參考下2023-06-06