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

MYSQL:4つの式のうち3つに一致する結果を取得できますか?


CASEステートメントを使用して、いくつかの式に一致する結果を取得できます-

SELECT *FROM yourTableName
WHERE CASE WHEN yourColumnName1 = yourValue1 THEN 1 ELSE 0 END +
   CASE WHEN yourColumnName2 = yourValue2 THEN 1 ELSE 0 END +
   CASE WHEN yourColumnName3 = yourValue3 THEN 1 ELSE 0 END +
   .
   .
CASE WHEN yourColumnNameN = yourValueN THEN 1 ELSE 0 END > = 3;

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

mysql> create table UserInformation
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> FirstName varchar(20),
   -> LastName varchar(20),
   -> Age int,
   -> Marks int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.58 sec)

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

mysql> insert into UserInformation(FirstName,LastName,Age,Marks) values('John','Smith',22,89);
Query OK, 1 row affected (0.12 sec)

mysql> insert into UserInformation(FirstName,LastName,Age,Marks) values('Carol','Taylor',21,80);
Query OK, 1 row affected (0.19 sec)

mysql> insert into UserInformation(FirstName,LastName,Age,Marks) values('John','Doe',24,81);
Query OK, 1 row affected (0.14 sec)

mysql> insert into UserInformation(FirstName,LastName,Age,Marks) values('David','Miller',29,99);
Query OK, 1 row affected (0.15 sec)

mysql> insert into UserInformation(FirstName,LastName,Age,Marks)
values('Mitchell','Johnson',22,65);
Query OK, 1 row affected (0.13 sec)

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

mysql> select *from UserInformation;

以下は出力です。

+----+-----------+----------+------+-------+
| Id | FirstName | LastName | Age  | Marks |
+----+-----------+----------+------+-------+
|  1 | John      | Smith    |   22 | 89 |
|  2 | Carol     | Taylor   | 21 | 80 |
|  3 | John      | Doe      | 24 | 81 |
|  4 | David     | Miller   | 29 | 99 |
|  5 | Mitchell  | Johnson  | 22 | 65 |
+----+-----------+----------+------+-------+
5 rows in set (0.00 sec)

これは、一部の(すべてではない)式に一致するレコードを引き出すためのクエリです。クエリは次のとおりです-

mysql> select *from UserInformation
   -> where case when FirstName = 'Mitchell' then 1 else 0 end +
   -> case when LastName = 'Johnson' then 1 else 0 end +
   -> case when Age = 22 then 1 else 0 end +
   -> case when Marks = 67 then 1 else 0 end > = 3;

以下は出力です-

+----+-----------+----------+------+-------+
| Id | FirstName | LastName | Age  | Marks |
+----+-----------+----------+------+-------+
|  5 | Mitchell  | Johnson  | 22   | 65    |
+----+-----------+----------+------+-------+
1 row in set (0.00 sec)

  1. Photoshopと同じように写真を編集:Chromebookでそれを行うことができます!

    Chromebookは素晴らしいマシンです。 Chromeウェブストアのアプリの品質が向上するにつれて、プライマリPCまたはMacで実行できるすべてのことを実行できるようになりますが、コストはわずかです。それらのセキュリティ、使いやすさ、および移植性により、学校、企業、大学生に急速に人気があり、そのすべてがその利点に注目しています。 このシリーズの前の記事では、一部の人の意見に反して、ChromebookがオフラインのときにGooglePlayの映画やテレビ番組を再生する方法について説明しました。ミニシリーズの最新作では、すべてのChromeユーザーが利用できる高品質のフォトエディタの幅広い

  2. Windows11ではできないことをWindows10でできること

    Windows 11 はすべての人が利用でき、今すぐ無料で入手できます。最小要件を満たすすべての適格なユーザーは、Windows 11のフルバージョンを簡単にアップグレードまたはインストールできます。マイクロソフトは、いくつかの優れた新機能を使用してWindows11のルックアンドフィールを刷新しました。また、安全で確実なエクスペリエンスを保証するために、いくつかの組み込みのセキュリティ機能が組み込まれています。 また、他のWindowsビルドと同様に、Windows10の一部の機能はWindows11で非推奨になりました。多くの人がそれを気に入っていましたが、これらの機能に慣れている熱心