首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要删除SQL列中每个字段的前三个字符

问我需要删除SQL列中每个字段的前三个字符
EN

Stack Overflow用户
提问于 2013-08-19 08:45:45
回答 3查看 23.3K关注 0票数 0

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-19 08:53:38

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

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

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

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

票数 7
EN

Stack Overflow用户

发布于 2013-08-19 08:51:46

代码语言:javascript
复制
SELECT RIGHT(MyColumn, LEN(MyColumn) - 3) AS MyTrimmedColumn

这将从结果中删除前三个字符。使用RIGHT需要两个参数:第一个参数是您希望显示的列,第二个参数是从结果右侧开始计数的字符数。

这应该可以了!

EDIT:如果您真的想从每个用户名中删除此前缀,请使用下面的UPDATE语句:

代码语言:javascript
复制
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 3)
票数 0
EN

Stack Overflow用户

发布于 2013-08-19 08:54:54

这应该是可行的

代码语言:javascript
复制
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++;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18305077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档