我在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))其中状态类似"%"