簡體   English   中英

更新mysql表中值的一部分

[英]Update part of a value in mysql table

我在mysql中有大約2K條記錄的“用戶”表。 在表中,有一個“狀態”字段。 狀態可以是2到3個字。 在少數狀態下,最后是一個空格,后跟一個星號。 我要刪除空格和星號。 請幫助我查詢更新值。 這里有些例子

Not smiling
always laughing *
never jumps *
keep it up
oh my god *

我想將其更改為:

Not smiling
always laughing
never jumps
keep it up
oh my god

SELECT * FROM users在哪里?????? (如何寫條件?)

編輯:
謝謝大家的回答。 有人可以考慮替換2000+條記錄,計算機資源的使用,內存,效率等問題時,給出最佳答案的答案。

您可以使用以下語法/命令來搜索和替換*

update users set status = replace(status, ' *', '') where instr(status, ' *') > 0;

這將找到帶*的字符串,而不帶*的字符串。

希望能幫助到你。

如何與查詢替換

 Update user 
set column = REPLACE(column, '*','')

嘗試這個...

$sql='SELECT id,status FROM users WHERE status like %* %';

while( $rs=$conn->query($sql) )
{
   $newStatus = str_replace(' *',rs[1]);
    $sqlUpdate="UPDATE users SET status =$newStatus WHERE id=rs[0]";

    if($conn->query($sqlUpdate) === false) {
        trigger_error('Wrong SQL: ' . $sqlUpdate. ' Error: ' . $conn->error, E_USER_ERROR);
    } 
}

嘗試此單行查詢以查找並僅替換狀態為*的記錄

update users set status = replace(status, ' *', '') where instr(status, ' *') > 0;

請在以下查詢中運行:

更新用戶設置status = RTRIM(SUBSTRING_INDEX(status,' ',1)),其中狀態類似於'% '

暫無
暫無

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

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