我有一個大型的MYSQL表,包含未知數量的括號內的數字。在MYSQL中刪除含有未知內容的括號表
例:「現在的地球是[1]空虛混沌......」
的數量可以達到3個位數。
當我不知道數字是什麼時,是否可以編寫一個刪除括號和數字的查詢?
我有一個大型的MYSQL表,包含未知數量的括號內的數字。在MYSQL中刪除含有未知內容的括號表
例:「現在的地球是[1]空虛混沌......」
的數量可以達到3個位數。
當我不知道數字是什麼時,是否可以編寫一個刪除括號和數字的查詢?
試試這個,希望它可以幫助你:
<?php
$str = "Just random [4] stuff with [56] random nums [000]" ;
$clean = preg_replace("/(\[[0-9]+\])/", "", $str) ;
echo $clean ; //Outputs: Just random stuff with random nums
?>
從數據庫中獲取數據,並做了更換。
或者您也可以編寫一個腳本來修改您的數據庫值: 使用SELECT
獲取標識符和字符串。 然後執行更換。使用UPDATE
更新數據庫中的表格。
如果它是你可以做以下的一次性件事:
sed
做你更換sed -e 's/\[\([0-9]*\)\]//g' mytabledump.sql > mytableclean.sql
mysql -u user -p dbname -e "TRUNCATE TABLE mytable;"
mysqldump -u user -p dbname --no-create-info mytable > /tmp/mytabledump.sql
mysql -u user -p dbname < /tmp/mytableclean.sql
Y你可能需要稍微調整一下regexp。
是的,例如使用正則表達式。 – str 2013-02-16 22:56:17
@str MySQL本身不支持regex替換。除非安裝了非標準的用戶功能,否則必須使用非常討厭的字符串Manip或應用程序端來完成 – 2013-02-16 23:00:56