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

MySQLは省略記号でテキストを切り捨てますか?


CASEステートメントでLENGTH()を使用すると、省略記号でテキストを切り捨てることができます。長さが7より大きい場合は、テキストを切り捨てて数値を追加します。それ以外の場合は、数値をそのまま印刷します。

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

mysql> create table TruncateText
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Number longtext,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.66 sec)

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

mysql> insert into TruncateText(Number) values('64575868667687');
Query OK, 1 row affected (0.11 sec)
mysql> insert into TruncateText(Number) values('7654332');
Query OK, 1 row affected (0.17 sec)
mysql> insert into TruncateText(Number) values('25434656');
Query OK, 1 row affected (0.19 sec)
mysql> insert into TruncateText(Number) values('6457586');
Query OK, 1 row affected (0.17 sec)
mysql> insert into TruncateText(Number) values('958567686868675757574');
Query OK, 1 row affected (0.13 sec)
mysql> insert into TruncateText(Number) values('374785868968787');
Query OK, 1 row affected (0.21 sec)
mysql> insert into TruncateText(Number) values('58969678685858585858585858585');
Query OK, 1 row affected (0.14 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。

mysql> select *from TruncateText;

出力は次のとおりです。

+----+-------------------------------+
| Id | Number                        |
+----+-------------------------------+
|  1 | 64575868667687                |
|  2 | 7654332                       |
|  3 | 25434656                      |
|  4 | 6457586                       |
|  5 | 958567686868675757574         |
|  6 | 374785868968787               |
|  7 | 58969678685858585858585858585 |
+----+-------------------------------+
7 rows in set (0.00 sec)

上記のサンプル出力には、長さが7より大きい数値がいくつかあります。長さが7より大きい場合は、7桁目の後に数値を追加する必要があります。長さが7または7に等しい場合、数値を追加する必要はありません。

クエリは次のとおりです。

mysql> SELECT *, CASE WHEN LENGTH(Number) > 7
   -> THEN CONCAT(SUBSTRING(Number, 1, 7), '99999999')
   -> ELSE Number END AS AddNumber
   -> FROM TruncateText;

出力は次のとおりです。

+----+-------------------------------+-----------------+
| Id | Number                        | AddNumber       |
+----+-------------------------------+-----------------+
|  1 | 64575868667687                | 645758699999999 |
|  2 | 7654332                       | 7654332         |
|  3 | 25434656                      | 254346599999999 |
|  4 | 6457586                       | 6457586         |
|  5 | 958567686868675757574         | 958567699999999 |
|  6 | 374785868968787               | 374785899999999 |
|  7 | 58969678685858585858585858585 | 589696799999999 |
+----+-------------------------------+-----------------+
7 rows in set (0.00 sec)

上記のサンプル出力を見てください。数値が7より大きい場合は、数値からすべての値を切り捨て、7桁目の後に数値「99999999」を追加しました。


  1. Javaを使用してMySQLテーブルの列数をカウントする

    これには、ResultSetMetaDataを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentFirstName varchar(20),    -> StudentLastName varchar(20)    -> ); Query OK, 0 r

  2. MySQLのリストにある特定のアイテムの個別の数

    特定のアイテムの明確な数を見つけるには、GROUP BY句とともにCOUNT()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1854      (      Name varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1854 values(