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

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)

  1. 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

  2. 数値を含む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'