我有一个名为“users”的表,其中有一个名为“username”的列。最近,我在数据库中的每个用户名中添加了前缀“El_”。现在我想删除前三个字母。我怎么能这样做?
答案 0 :(得分:4)
假设MySql
你可以做这样的事情。
update users set username=substring(username,4);
将更新每一行不包含el_
,但这假定每行都以El_开头。
sqlfiddle - http://sqlfiddle.com/#!2/3bcf6/1/0
答案 1 :(得分:0)
SELECT RIGHT(MyColumn, LEN(MyColumn) - 3) AS MyTrimmedColumn
这会从结果中删除前三个字符。使用RIGHT需要两个参数:第一个是您希望显示的列,第二个是从结果右侧开始计算的字符数。
这应该做!
编辑:如果你真的想从每个用户名中删除这个前缀,那么请使用UPDATE语句,如下所示:
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 3)
答案 2 :(得分:-1)
这应该有效
mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname) or die(mysql_error());
$query = "SELECT username, id FROM users";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_numrows($result);
$i = 0;
while($i < $count){
$username = (mysql_result($result, $i, "username"));
$id = (mysql_result($result, $i, "id"));
$username = substr($username, 3);
$con=mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
mysqli_query($con,"UPDATE users SET username = $username WHERE id = $id);
mysqli_close($con);
i++;
}