MySQLクエリで使用する独自のMySQL関数を作成できますか?
はい、MySQLクエリで使用する独自のMySQL関数を作成できます。構文は次のとおりです。
DELIMITER // CREATE FUNCTION yourFunctionName(optional parameters)) RETURNS yourDataType DETERMINISTIC NO SQL BEGIN yourStatements1 . . . . N END // DELIMITER ;
上記のCREATEFUNCTIONを使用して、カスタム関数を作成しました。
MySQLクエリで使用するカスタムMySQL関数を作成しましょう:
mysql> DELIMITER // mysql> CREATE FUNCTION get_First_Name(Name VARCHAR(255)) RETURNS VARCHAR(255) DETERMINISTIC NO SQL BEGIN RETURN LEFT(Name,LOCATE(' ',Name) - 1); END // Query OK, 0 rows affected (0.20 sec) mysql> DELIMITER ;
次に、SELECTステートメントを使用して上記の関数を呼び出します。
mysql> select get_First_Name('David Miller');
これにより、次の出力が生成されます。
+--------------------------------+ | get_First_Name('David Miller') | +--------------------------------+ | David | +--------------------------------+ 1 row in set, 2 warnings (0.00 sec)>
-
MySQLでORDERBYNULLを使用できますか?
はい、できます 注 −MySQL5.7以前はORDERBYNULLが便利でしたが、MySQL 8.0では、たとえば、暗黙の並べ替えを抑制するために最後にORDERBYNULLを指定する必要がなくなりました。 まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Name varchar(10) -> ); Query OK, 0 rows affected (1.01 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable v
-
MySQL WHERE句でSUM()関数の結果を使用できますか?
MySQLのWHEREではなくHAVING句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable ( Name varchar(50), Price int ); Query OK, 0 rows affected (0.79 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris',30); Query OK, 1 row affected (0.15