MySQLで該当する場合にのみ、文字列列から数値をキャストおよび更新するにはどうすればよいですか?
MySQLのCEIL()関数を使用できます。まず、テーブルを作成しましょう。ここでは、最初の列をVARCHAR-
としています。mysql> create table DemoTable -> ( -> Value varchar(20), -> UpdateValue int -> ); Query OK, 0 rows affected (1.08 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable(Value) values('100'); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable(Value) values('false'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable(Value) values('true'); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable(Value) values('1'); Query OK, 1 row affected (0.07 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+-------+-------------+ | Value | UpdateValue | +-------+-------------+ | 100 | NULL | | false | NULL | | true | NULL | | 1 | NULL | +-------+-------------+ 4 rows in set (0.00 sec)
以下は、該当する場合にのみ文字列列から数値をキャストおよび更新するためのクエリです-
mysql> update DemoTable -> set UpdateValue=ceil(cast(Value AS char(7))); Query OK, 4 rows affected (0.18 sec) Rows matched: 4 Changed: 4 Warnings: 0
テーブルレコードをもう一度確認しましょう-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+-------+-------------+ | Value | UpdateValue | +-------+-------------+ | 100 | 100 | | false | 0 | | true | 0 | | 1 | 1 | +-------+-------------+ 4 rows in set (0.00 sec)
-
MySQLから列名とタイプを抽出する方法は?
列名とタイプを抽出するには、INFORMATION_SCHEMA.COLUMNS-を使用します select concat(column_name,'=',data_type) as anyAliasName from information_schema.columns where table_schema= yourDatabaseName and table_name= yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable1812 ( &nbs
-
MySQLで文字列の最初に繰り返される値のみを置き換える方法
これには、REGEXP_REPLACE()を使用できます。文字列が-だとしましょう This is my first MySQL query. This is the first tutorial. I am learning for the first time. 特定の単語の最初の出現のみを置き換える必要があります。たとえば、「最初」としましょう。出力は-である必要があります This is my second MySQL query. This is the first tutorial. I am learning for the first time. テーブルを作成しましょう-