MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで、列全体の値から特定のプレフィックスを削除して更新するにはどうすればよいですか?


これは、MySQL UPDATEステートメントとともに列にTRIM()関数を適用することで実行できます。以下の例で、より明確になります。

次のように、「Department」列のすべての値が「Dept.」というプレフィックスを持つテーブル「Employee」があるとします-

mysql> Select * from Employee;
+------+----------------+------------+----------------------+
| Id   | Name           | Address    | Department           |
+------+----------------+------------+----------------------+
| 100  | Raman          | Delhi      | IT Dept.             |
| 101  | Mohan          | Haryana    | History Dept.        |
| 102  | Shyam          | Chandigarh | ENGLISH Dept.        |
| 103  | Sukhjeet Singh | Patiala    | Computer Engg. Dept. |
| 104  | Bimal Roy      | Calcutta   | Computer Engg. Dept. |
+------+----------------+------------+----------------------+
5 rows in set (0.01 sec)

次に、以下のクエリにより、Department列からプレフィックス「Dept。」が削除され、テーブルも更新されます。

mysql> Update Employee set Department = TRIM(Trailing 'Dept.' FROM Department);
Query OK, 5 rows affected (0.10 sec)
Rows matched: 5 Changed: 5 Warnings: 0

mysql> Select * from Employee;
+------+----------------+------------+-----------------+
| Id   | Name           | Address    | Department      |
+------+----------------+------------+-----------------+
| 100  | Raman          | Delhi      | IT              |
| 101  | Mohan          | Haryana    | History         |
| 102  | Shyam          | Chandigarh | ENGLISH         |
| 103  | Sukhjeet Singh | Patiala    | Computer Engg.  |
| 104  | Bimal Roy      | Calcutta   | Computer Engg.  |
+------+----------------+------------+-----------------+
5 rows in set (0.00 sec)

上記の結果セットは、列の値に接頭辞「Dept.」がないことを示しています。


  1. MySQLで該当する場合にのみ、文字列列から数値をキャストおよび更新するにはどうすればよいですか?

    MySQLのCEIL()関数を使用できます。まず、テーブルを作成しましょう。ここでは、最初の列をVARCHAR-としています。 mysql> create table DemoTable    -> (    -> Value varchar(20),    -> UpdateValue int    -> ); Query OK, 0 rows affected (1.08 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> inser

  2. MySQLは特定の行と列に値を挿入します

    まずテーブルを作成しましょう- mysql> create table DemoTable1569    -> (    -> StudentId varchar(10),    -> StudentName varchar(20)    -> ); Query OK, 0 rows affected (3.05 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1569 values('