「username」という列を持つ「users」というテーブルがあります。最近、データベース内のすべてのユーザー名にプレフィックス「El_」を追加しました。ここで、これらの最初の 3 文字を削除したいと思います。どうやってやるの?
質問する
24275 次
3 に答える
7
MySql
このようなことができると仮定します。
update users set username=substring(username,4);
これにより、すべての行が include を含まないように更新されます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
これにより、結果から最初の 3 文字が削除されます。RIGHT を使用するには 2 つの引数が必要です。最初の引数は表示する列、2 番目の引数は結果の右から数えた文字数です。
これはすべきです!
EDIT:すべてのユーザー名からこのプレフィックスを削除して有効に使用したい場合は、次のように UPDATE ステートメントを使用します。
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 に答える