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

MySQLは数字付きの文字列で並べ替えますか?


数字を含むMySQL注文文字列に対して、以下は構文です。ここでは、ORDER BY、SUBSTR()、およびCAST()-

を使用しています。
SELECT *FROM yourTableName ORDER BY
SUBSTR(yourColumnName FROM 1 FOR 2),
CAST(SUBSTR(yourColumnName FROM 2) AS UNSIGNED);

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table OrderByStringWithNumbers
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Words varchar(10),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.86 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into OrderByStringWithNumbers(Words) values('A10');
Query OK, 1 row affected (0.19 sec)

mysql> insert into OrderByStringWithNumbers(Words) values('A30');
Query OK, 1 row affected (0.19 sec)

mysql> insert into OrderByStringWithNumbers(Words) values('A12');
Query OK, 1 row affected (0.13 sec)

mysql> insert into OrderByStringWithNumbers(Words) values('A11');
Query OK, 1 row affected (0.17 sec)

mysql> insert into OrderByStringWithNumbers(Words) values('A28');
Query OK, 1 row affected (0.13 sec)

mysql> insert into OrderByStringWithNumbers(Words) values('A21');
Query OK, 1 row affected (0.20 sec)

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

mysql> select *from OrderByStringWithNumbers;

以下は出力です-

+----+-------+
| Id | Words |
+----+-------+
| 1  | A10   |
| 2  | A30   |
| 3  | A12   |
| 4  | A11   |
| 5  | A28   |
| 6  | A21   |
+----+-------+
6 rows in set (0.00 sec)

数字の文字列で並べ替えるクエリは次のとおりです-

mysql> select *from OrderByStringWithNumbers order by
   -> substr(Words from 1 for 2),
   -> cast(substr(Words from 2) AS UNSIGNED);

以下は出力です-

+----+-------+
| Id | Words |
+----+-------+
| 1  | A10   |
| 4  | A11   |
| 3  | A12   |
| 6  | A21   |
| 5  | A28   |
| 2  | A30   |
+----+-------+
6 rows in set (0.00 sec)

  1. Javaを使用したMySQLデータベースへの接続

    以下のURLを使用してMySQLデータベースに接続します。構文は次のとおりです- String MySQLURL="jdbc:mysql://localhost:3306/yourDatabaseName?useSSL=false"; String databseUserName="yourUserName"; String databasePassword="yourPassword"; 例 import java.sql.Connection; import java.sql.DriverManager; import java.

  2. MySQL REGEXPは、特定の数値で始まる文字列+数値レコードをフェッチしますか?

    これには、REGEXPを使用して、特定の番号で始まるレコードをフェッチします。構文は次のとおりです。 Select yourColumnName1,yourColumnName2 from yourTableName where yourColumnName2 REGEXP '^yourStringValue[yourNumericValue]'; テーブルを作成しましょう- mysql> create table demo45 -> ( −> id int not null auto_increment primary key, −