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)
-
列値の最初の文字を取得し、MySQLを使用して別の列に挿入します
これには、LEFT()関数の概念を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2036 -> ( -> FirstLetter varchar(20), -> Title varchar(20) -> ); Query OK, 0 rows affected (1.01 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa
-
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