我有一个名为"users“的表,其中有一个名为”username“的列。最近,我为数据库中的每个用户名添加了前缀"El_“。现在我想删除前三个字母。我该怎么做呢?
发布于 2013-08-19 08:53:38
假设MySql,你可以做这样的事情。
update users set username=substring(username,4);
它将更新每一行,使其不包含el_,但这假设每一行都以El_开头。
sqlfiddle - http://sqlfiddle.com/#!2/3bcf6/1/0
发布于 2013-08-19 08:51:46
SELECT RIGHT(MyColumn, LEN(MyColumn) - 3) AS MyTrimmedColumn这将从结果中删除前三个字符。使用RIGHT需要两个参数:第一个参数是您希望显示的列,第二个参数是从结果右侧开始计数的字符数。
这应该可以了!
EDIT:如果您真的想从每个用户名中删除此前缀,请使用下面的UPDATE语句:
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 3)发布于 2013-08-19 08:54:54
这应该是可行的
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++;
}https://stackoverflow.com/questions/18305077
复制相似问题