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

NULLでない場合は行から値を返し、そうでない場合はMySQLを使用して別の列の他の行の値を返します


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

mysql> create table DemoTable
(
   FirstName varchar(100),
   LastName varchar(100)
);
Query OK, 0 rows affected (0.62 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values('John','Doe');
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable values(NULL,'Taylor');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('David',NULL);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(NULL,'Miller');
Query OK, 1 row affected (0.12 sec)

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

mysql> select *from DemoTable;

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

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| John      | Doe      |
| NULL      | Taylor   |
| David     | NULL     |
| NULL      | Miller   |
+-----------+----------+
4 rows in set (0.00 sec)

以下は、行がNULLでない場合に行から値を返すクエリです。それ以外の場合は、別の列にある他の行の値を返します-

mysql> select ifnull(FirstName,LastName) as Result from DemoTable;

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

+--------+
| Result |
+--------+
| John   |
| Taylor |
| David  |
| Miller |
+--------+
4 rows in set (0.00 sec)

  1. 列値の最初の文字を取得し、MySQLを使用して別の列に挿入します

    これには、LEFT()関数の概念を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2036    -> (    -> FirstLetter varchar(20),    -> Title varchar(20)    -> ); Query OK, 0 rows affected (1.01 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa

  2. MySQLで選択した値が「0」の場合は別の列から選択しますか?

    これには、MySQLでIF()を使用します。構文は次のとおりです- select IF(yourColumnName1=0,yourColumnName2,yourColumnName1) as anyAliasName from yourTableName; テーブルを作成しましょう- mysql> create table demo30 −> ( −> id int not null auto_increment primary key, −> value int, −> original_value int