0

我有一个名为“users”的表,其中有一列名为“username”。最近,我为数据库中的每个用户名添加了前缀“El_”。现在我想删除前三个字母。我怎样才能做到这一点?

4

3 回答 3

7

假设MySql你可以做这样的事情。

update users set username=substring(username,4);

这会将每一行更新为不包含el_,但这假设每一行都以 El_ 开头。

sqlfiddle - http://sqlfiddle.com/#!2/3bcf6/1/0

于 2013-08-19T00:53:38.090 回答
0
SELECT RIGHT(MyColumn, LEN(MyColumn) - 3) AS MyTrimmedColumn

This removes the first three characters from your result. Using RIGHT needs two arguments: the first one is the column you'd wish to display, the second one is the number of characters counting from the right of your result.

This should do!

EDIT: if you really like to remove this prefix from every username for good use an UPDATE statement as follows:

UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 3)
于 2013-08-19T00:51:45.843 回答
-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++;
}
于 2013-08-19T00:54:53.893 回答