更新mysql表中的部分值


Update part of a value in mysql table

我在mysql中有一个表"users",大约有2K条记录。表中有一个字段"status"。状态可以是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

从用户中选择*哪里??????(如何写条件?)

编辑:
感谢大家的回答。考虑到替换2000多条记录、计算机资源的利用率、内存、效率等,有人能说明哪个答案是最好的吗?

您可以使用以下语法/命令来搜索和替换*

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

这将查找带有*的字符串,并替换为不带*的字符串。

希望能有所帮助。

尝试这个单行查询,只查找并替换状态中带有*的记录

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

how About with query Replace

 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);
    } 
}

请运行以下查询:

更新用户set status=RTRIM(SUBSTRING_INDEX(status,'',1))其中状态类似"%"