MySQLで別の重複する列値が見つかった場合、列値に基づいて行を除外しますか?
このために、サブクエリを使用できます。まず、-
を作成しましょうmysql> create table DemoTable1427 -> ( -> StudentId int, -> StudentMarks int -> ); Query OK, 0 rows affected (1.28 sec)
insert-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable1427 values(201,89); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1427 values(201,99); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable1427 values(210,98); Query OK, 1 row affected (0.16 sec)
select-
を使用してテーブルのすべてのレコードを表示しますmysql> select * from DemoTable1427 ;
これにより、次の出力が生成されます-
+-----------+--------------+ | StudentId | StudentMarks | +-----------+--------------+ | 201 | 89 | | 201 | 99 | | 210 | 98 | +-----------+--------------+ 3 rows in set (0.00 sec)
別の重複する列値が見つかった場合に、列値に基づいて行を除外するクエリを次に示します。ここで、Studentmarks89はStudentId201であり、Studentid 201も別のレコードを持っているため、両方が結果から除外されます-
mysql> select * from DemoTable1427 -> where StudentId NOT IN (select distinct StudentId from DemoTable1427 where StudentMarks=89);
これにより、次の出力が生成されます-
+-----------+--------------+ | StudentId | StudentMarks | +-----------+--------------+ | 210 | 98 | +-----------+--------------+ 1 row in set (0.00 sec)
-
MySQLのタイムスタンプ列に基づいてデータを選択し、値をブール値に設定します
これには、IF()を使用します。まず、現在の日付を見てみましょう- mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-12-10 | +------------+ 1 row in set (0.00 sec) まずテーブルを作成しましょう- mysql> create table DemoTable1890 ( DueDate timestamp ); Query OK, 0 rows a
-
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