MySQLスカラーサブクエリによってどのような種類の出力が返されますか? MySQLクエリで使用する際の制限は何ですか?
MySQLスカラーサブクエリは1つの行から正確に1つの列値を返し、単一の列が許可されている場合に使用できます。以下は、スカラーサブクエリが1行以外の値を返す場合です-
サブクエリが複数の行を返す場合、スカラーサブクエリのプロパティにより、MySQLはエラーを返します。
mysql> Select * from Customers; +-------------+----------+ | Customer_Id | Name | +-------------+----------+ | 1 | Rahul | | 2 | Yashpal | | 3 | Gaurav | | 4 | Virender | +-------------+----------+ 4 rows in set (0.00 sec) mysql> Select * from Reservations; +------+-------------+------------+ | ID | Customer_id | Day | +------+-------------+------------+ | 1 | 1 | 2017-12-30 | | 2 | 2 | 2017-12-28 | | 3 | 2 | 2017-12-29 | | 4 | 1 | 2017-12-25 | | 5 | 3 | 2017-12-26 | +------+-------------+------------+ 5 rows in set (0.00 sec)
これで、次のクエリは1行に対して正確に1つの列値を返します-
mysql> Select Name from Customers WHERE customer_id = (Select Customer_id FROM reservations where id = 3); +---------+ | Name | +---------+ | Yashpal | +---------+ 1 row in set (0.00 sec)
ここで、サブクエリが0行を返す場合、スカラーサブクエリ式の値がNULLであることを意味するとします。次のクエリに表示されます-
mysql> Select Name from Customers WHERE customer_id = (Select Customer_id FROM reservations where id = 10); Empty set (0.00 sec)
上記の結果セットから、MySQLが空のセット(0行)を返すことがわかります。これは、スカラーサブクエリ式の値がNULLの場合(10に等しいIDがないため)です。
MySQLクエリでスカラーサブクエリを使用する際の制限は、リテラル値のみを許可するステートメントでスカラーサブクエリを使用できることです。たとえば、LIMITにはリテラル整数引数が必要であることがわかっているため、これらの値を提供するためにスカラーサブクエリを使用することはできません。
-
Java JDBCを使用したMySQLに対する「カウント」クエリの戻りタイプは何ですか?
カウントの戻りタイプは長いです。 Javaステートメントは次のとおりです rs.next(); long result= rs.getLong("anyAliasName"); まず、サンプルデータベースtest3にいくつかのレコードを含むテーブルを作成します。テーブルを作成するためのクエリは次のとおりです mysql> create table CountDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ->
-
MySQLのLIKEを使用して、特定の文字で始まる名前を取得します
特定の文字で始まる名前を取得するには、LIKEを使用する必要があります。最初にテーブルを作成しましょう: mysql> create table DemoTable ( StudentFirstName varchar(20) ); Query OK, 0 rows affected (1.01 sec) 以下は、挿入コマンドを使用してテーブルにいくつかのレコードを挿入するためのクエリです。 mysql> insert into DemoTable values('John'); Query OK, 1 row affected (0.1