MySQL varcharフィールドの数値を比較できますか?
はい、最初にCAST()を使用してこれを行うことができます。まずテーブルを作成しましょう-
mysql> create table DemoTable -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentScore varchar(100) -> ); Query OK, 0 rows affected (0.66 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable(StudentScore) values('90'); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable(StudentScore) values('100'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable(StudentScore) values('56'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable(StudentScore) values('98'); Query OK, 1 row affected (0.13 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
出力
これにより、次の出力が生成されます-
+-----------+--------------+ | StudentId | StudentScore | +-----------+--------------+ | 1 | 90 | | 2 | 100 | | 3 | 56 | | 4 | 98 | +-----------+--------------+ 4 rows in set (0.00 sec)
これがvarcharフィールドで比較するクエリです-
mysql> select *from DemoTable where CAST(StudentScore AS SIGNED) > 91;
出力
これにより、次の出力が生成されます-
+-----------+--------------+ | StudentId | StudentScore | +-----------+--------------+ | 2 | 100 | | 4 | 98 | +-----------+--------------+ 2 rows in set (0.00 sec)
-
MySQLで文字列と数値を含むVARCHARレコードを注文する
これには、ORDERBY句を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> StudentCode varchar(20) -> ); Query OK, 0 rows affected (0.57 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('101J'); Query OK, 1 row a
-
数値を含むVARCHAR文字列のハイフンの後の数値を削除するMySQLクエリ
これには、SUBSTRING_INDEX()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2040 -> ( -> StudentCode varchar(20) -> ); Query OK, 0 rows affected (0.85 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2040 values('John-232'