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

MySQLで文字列値と数値の両方を持つvarcharデータを昇順で並べ替えることは可能ですか?


このために、ORDER BY IF(CAST())を使用できます。まずテーブルを作成しましょう-

mysql> create table DemoTable(EmployeeCode varchar(100));
Query OK, 0 rows affected (1.17 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values('190');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('100');
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values('120');
Query OK, 1 row affected (0.21 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+--------------+
| EmployeeCode |
+--------------+
| 190          |
| 100          |
| John         |
| 120          |
+--------------+
4 rows in set (0.00 sec)

以下は、文字列と数値の両方の値を使用してvarcharデータを昇順で並べ替えるクエリです-

mysql> select *from DemoTable
ORDER BY IF(CAST(EmployeeCode AS SIGNED) = 0, 100000000000, CAST(EmployeeCode AS SIGNED));

これにより、次の出力が生成されます。ここでは、数値が最初に並べ替えられます-

+--------------+
| EmployeeCode |
+--------------+
| 100          |
| 120          |
| 190          |
| John         |
+--------------+
4 rows in set, 1 warning (0.00 sec)

  1. MySQLで数字と混合された文字列で並べ替えますか?

    場合によってはORDERBYを使用します。テーブルを作成しましょう- mysql> create table demo18 −> ( −> value text −> ); Query OK, 0 rows affected (1.18 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo18 values('John Smith'); Query OK, 1 row affected (0.06 sec) mysql> inse

  2. 文字列と数値を組み合わせてどのタイプのデータ型(MySQL)を使用する必要がありますか?

    文字列と数値を混在させるには、VARCHAR()データ型を使用する必要があります。以下は構文です- CREATE TABLE yourTableName ( yourColumnName1 VARCHAR(40) ); テーブルを作成しましょう- mysql> create table demo28 −> ( −> id int not null auto_increment primary key, −> user_id varchar(40) −> ); Query OK, 0 rows affected (0