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

SELECTステートメントをMySQLIF()関数の引数として使用するにはどうすればよいですか?


MySQL IF()関数の最初の引数としてSELECTステートメントを使用することはかなり可能です。理解しやすくするために、表「学生」のデータを次のように検討してください。

mysql> Select * from Students;
+----+-----------+-----------+----------+----------------+
| id | Name      | Country   | Language | Course         |
+----+-----------+-----------+----------+----------------+
| 1  | Francis   | UK        | English  | Literature     |
| 2  | Rick      | USA       | English  | History        |
| 3  | Correy    | USA       | English  | Computers      |
| 4  | Shane     | France    | French   | Computers      |
| 5  | Validimir | Russia    | Russian  | Computers      |
| 6  | Steve     | Australia | English  | Geoinformatics |
| 7  | Rahul     | India     | Hindi    | Yoga           |
| 8  | Harshit   | India     | Hindi    | Computers      |
| 9  | Harry     | NZ        | English  | Electronics    |
+----+-----------+-----------+----------+----------------+
9 rows in set (0.00 sec)

これで、次のクエリはIF()関数内でSELECTステートメントを使用します

mysql> Select ID, IF((Select COUNT(*) FROM Students WHERE Language = 'English')>(Select COUNT(*) from Students WHERE Language <> 'English'),(CONCAT("Name is ", Name)),(CONCAT("Course is ", Course))) AS 'Name/Course' from Students;
+----+-------------------+
| ID | Name/Course       |
+----+-------------------+
| 1  | Name is Francis   |
| 2  | Name is Rick      |
| 3  | Name is Correy    |
| 4  | Name is Shane     |
| 5  | Name is Validimir |
| 6  | Name is Steve     |
| 7  | Name is Rahul     |
| 8  | Name is Harshit   |
| 9  | Name is Harry     |
+----+-------------------+
9 rows in set (0.00 sec)

  1. MySQLクエリでSELECTNULLステートメントを使用できますか?

    はい、MySQLクエリでSELECTNULLステートメントを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable (    Name varchar(100) ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.47 sec) mysql> ins

  2. MySQLでの更新中にselectステートメントを使用するにはどうすればよいですか?

    このために、MySQL UPDATEコマンドを使用している間、WHERE句とともにサブクエリを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Id int,    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.82 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert int