我有一张桌子"用户"在mysql中有大约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
SELECT * FROM users WHERE ?????? (如何写条件?)
编辑:
谢谢大家的答案。考虑到取代2000多条记录,利用计算机资源,记忆,效率等,有人可以了解哪个答案最好?
答案 0 :(得分:2)
您可以使用以下语法/命令来搜索和替换*
update users set status = replace(status, ' *', '') where instr(status, ' *') > 0;
这将找到带*的字符串,而不用*。
替换希望它有所帮助。
答案 1 :(得分:1)
如何使用查询替换
Update user
set column = REPLACE(column, '*','')
答案 2 :(得分:1)
试试这个......
$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);
}
}
答案 3 :(得分:1)
尝试使用此单行查询来查找和替换状态为
的*记录update users set status = replace(status, ' *', '') where instr(status, ' *') > 0;
答案 4 :(得分:0)
请运行以下查询:
更新用户 set status = RTRIM(SUBSTRING_INDEX(状态,' ',1)) 其中的状态如'%'