簡體   English   中英

將 first_name 和 last_name 列中的名稱截斷為 1 個字符的最有效方法是什么?

[英]What's the most efficient way of truncating the names in a first_name and last_name column to 1 character?

將 first_name 和 last_name 列中的名稱截斷為 1 個字符的最有效方法是什么?

我有一個 mysql 數據庫,我想將其交給開發人員,但我想對數據進行部分清理,以便將兩個名稱記錄降為首字母。

我試圖將 varchar 修改為 1 個字符,但 mysql 不會讓我截斷數據,它只會引發錯誤。 在我交出之前,我正在從數據庫的轉儲中工作。 我想隱藏名稱而不使它們完全相同。

update tablename set first_name=left(first_name, 1), last_name = left(last_name, 1)

但是,正如 Gordon Linoff 提到的,如果表中有很多行,這可能會很昂貴

由於需要日志記錄,更新所有行的成本相當高。 最有效的方法可能是創建一個新表:

create table for_developer as
    select left(first_name, 1) as first_name, left(last_name, 1) as last_name,
           . . . -- rest of columns
    from t;

你為什么不試試:

Update "you_table"
SET first_name = LEFT(first_name,1), 
last_name = LEFT(last_name,1);

您可以在創建新表時使用like ,這樣您就擁有與舊表相同的列屬性和定義。 但是,請務必在創建表時查看有關like行為的手冊,尤其是在您擔心索引的情況下。

create table new_table like old_table;

insert into new_table

select left(first_name, 1) as first_name, left(last_name, 1) as last_name, ..-- rest of columns
from old_table;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM