1. MySQLでよく使われる文字列関数
1: CANCAT(S1,S2,…Sn) 関数は渡されたパラメータを文字列に接続します。
mysql> select concat('aaa','bbb','d'),concat('dd',null); +-------------------------+-------------------+ | 連結('aaa','bbb','d') | 連結('dd',null) | +-------------------------+-------------------+ | aaabbbd | NULL | +-------------------------+-------------------+ セット内の 1 行 (0.00 秒) 2: INSERT(str, x, y, instr) 関数: 位置 x から始まる y 文字の長さの文字列 str の部分文字列を文字列 instr に置き換えます。 文字列「123456」の3文字目から始まる3文字を「me」に置き換えます。 mysql> insert('123456',3,3,'me') を選択します。 +---------------------------+ | 挿入('123456',3,3,'私') | +---------------------------+ |12me6| +---------------------------+ セット内の1行(0.02秒) 3: LOWER(str) および UPPER(str) 関数: 文字列を小文字または大文字に変換します。 mysql> 下位("ZHANG")、上位("zhang")を選択します。 +----------------+----------------+ | 下("ZHANG") | 上("zhang") | +----------------+----------------+ | 張 | ZHANG | +----------------+----------------+ セット内の 1 行 (0.00 秒) 4: LEFT(str,x) および RIGHT(str,x) 関数: それぞれ文字列の左端の x 文字と右端の x 文字を返します。注意: 2 番目の引数が NULL の場合、文字列は返されません。 mysql> 左('zhang',2)、左('zhang',null)、右('zhang',2)、左('zhang',10)を選択します。 +-----------------+--------------------+------------------+------------------+ | 左('zhang',2) | 左('zhang',null) | 右('zhang',2) | 左('zhang',10) | +-----------------+--------------------+------------------+------------------+ | zh | NULL | ng | チャン | +-----------------+--------------------+------------------+------------------+ セット内の 1 行 (0.00 秒) 5: LPAD(str,n,pad) および RPAD(str,n,pad) 関数: 長さが n 文字になるまで、str の左端と右端の部分を文字列 pad で埋めます。 mysql> lpad('bin',8,'zhang'),rpad('zhang',8,'bin'),rpad('beijing',20,'2008'); を選択します。 +----------------------+-----------------------+---------------------------+ | lpad('bin',8,'zhang') | rpad('zhang',8,'bin') | rpad('北京',20,'2008') | +----------------------+-----------------------+---------------------------+ | 張斌 | 張斌 | 北京2008200820082 | +----------------------+-----------------------+---------------------------+ セット内の 1 行 (0.00 秒) 6: LTRIM(str) および RTRIM(str) 関数: 文字列 str の左側と右側のスペースを削除します。 mysql> ' zhang'、ltrim(' zhang')、rtrim('zhang ') を選択します。 +----------+-------------------+--------------------+ | 張 | ltrim('張') | rtrim('張 ') | +----------+-------------------+--------------------+ | 張 | 張 | 張 | +----------+-------------------+--------------------+ セット内の 1 行 (0.00 秒) 7:REPEAT(str,x)関数: strをx回繰り返した結果を返します。 mysql> repeat('mysql',5) を選択します。 +---------------------------+ | 繰り返し('mysql',5) | +---------------------------+ |mysqlmysqlmysqlmysqlmysql| +---------------------------+ セット内の 1 行 (0.00 秒) 8:REPLACE(str,a,b) 関数: 文字列 str 内の文字列 a のすべての出現を文字列 b に置き換えます。 mysql> replace('mysql','sql','ddd') を選択します。 +------------------------------+ | 置き換えます('mysql','sql','ddd') | +------------------------------+ |私のddd| +------------------------------+ セット内の 1 行 (0.00 秒) 9:STRCMP(s1,s2)関数:文字列s1とs2のASCIIコード値を比較します。 s1 が s2 より小さい場合は -1 を返し、s1 が s2 と等しい場合は 0 を返し、s1 が s2 より大きい場合は 1 を返します。 mysql> strcmp('a','b'),strcmp('b','b'),strcmp('c','b'),strcmp('a','A'); を選択します。 +-+-----------------+-----------------+-----------------+----------------+ | strcmp('a','b') | strcmp('b','b') | strcmp('c','b') | strcmp('a','A') | +-+-----------------+-----------------+-----------------+----------------+ | -1 | 0 | 1 | 0 | +-+-----------------+-----------------+-----------------+----------------+ セット内の1行(0.01秒) 10:TRIM(str)関数: 対象文字列の先頭と末尾のスペースを削除します。 mysql> trim(' 111 $mysql$ ') を選択します。 +-----------------------------+ | トリム(' 111 $ mysql $ ') | +-----------------------------+ | 111 $mysql$ | +-----------------------------+ セット内の1行(0.01秒) 11:SUBSTRING(str,x,y) 関数: 文字列 str の x 番目の位置から始まる y 文字の文字列を返します。 mysql> サブ文字列を選択します('mysqlisdd',4,4); +----------------------------+ | サブ文字列('mysqlisdd',4,4) | +----------------------------+ |クリ| +----------------------------+ セット内の 1 行 (0.00 秒) 2. 数値関数
1: ABS(x)関数: xの絶対値を返します。 mysql> abs(-0.3),abs(0.3) を選択します。 +-----------+-----------+ | 絶対値(-0.3) | 絶対値(0.3) | +-----------+-----------+ | 0.3 | 0.3 | +-----------+-----------+ セット内1列(0.36秒) 2: CEIL(x)関数はxより大きい最大の整数を返します mysql> ceil(-0.2),ceil(0.2) を選択します。 +------------+------------+ | 天井(-0.2) | 天井(0.2) | +------------+------------+ | 0 | 1 | +------------+------------+ セット内の 1 行 (0.00 秒) 3: FLOOR(x)関数は、xより小さい最大の整数を返します。これはCEILの正反対です。 mysql> floor(-0.2),floor(0.2) を選択します。 +-------------+-------------+ | フロア(-0.2) | フロア(0.2) | +-------------+-------------+ | -1 | 0 | +-------------+-------------+ セット内の 1 行 (0.00 秒) 4: MOD(x, y)関数: x/yの係数を返します。結果は x%y と同じです。係数またはモジュロのいずれかが NULL の場合、結果は NULL になります。次の例に示すように: mysql> mod(15,10)、mod(1,11)、mod(null,10)を選択します。 +------------+------------+--------------+ | mod(15,10) | mod(1,11) | mod(null,10) | +------------+------------+--------------+ | 5 | 1 | NULL | +------------+------------+--------------+ セット内の 1 行 (0.00 秒) 5: RAND()関数は0から1までの乱数を返します mysql> rand(),rand() を選択します。 +-------------------+---------------------+ | ランダム() | ランダム() | +-------------------+---------------------+ | 0.541937319135235 | 0.10546984067696132 | +-------------------+---------------------+ セット内の 1 行 (0.00 秒) 6: ROUND(x,y) 関数は、パラメータ x を小数点以下 y 桁で丸めた値を返します。整数の場合、y 桁の 0 が保持されます。y が書き込まれていない場合は、y は 0 であると見なされ、つまり、x は最も近い整数に丸められます。 mysql> round(1.2,2)、round(1.3)、round(1,2) を選択します。 +--------------+------------+-------------+ | ラウンド(1.2,2) | ラウンド(1.3) | ラウンド(1,2) | +--------------+------------+-------------+ | 1.20 | 1 | 1 | +--------------+------------+-------------+ セット内の 1 行 (0.00 秒) 7: TRUNCATE(x,y) 関数: 数値 x を小数点以下 y 桁に切り捨てた結果を返します。 (TRUNCATE と ROUND の違いは、TRUNCATE は切り捨てのみを行い、四捨五入は行わないという点です。) mysql> round(1.235,2)を選択し、truncate(1.235,2); +----------------+-------------------+ | 丸め(1.235,2) | 切り捨て(1.235,2) | +----------------+-------------------+ | 1.24 | 1.23 | +----------------+-------------------+ セット内1列(0.31秒) 3. 日付と時刻の機能MySQL の一般的な日付と時刻の関数:
1: CURDATE() 関数: 年、月、日のみを含む現在の日付を返します mysql> curdate() を選択します。 +------------+ | 更新() | +------------+ | 2021-05-25 | +------------+ セット内の 1 行 (0.00 秒) 2: CURTIME() 関数: 時間、分、秒のみを含む現在の時刻を返します。 mysql> curtime() を選択します。 +-----------+ | カーソル時間() | +-----------+ | 14:07:06 | +-----------+ セット内の 1 行 (0.00 秒) 3: NOW() 関数: 年、月、日、時、分、秒を含む現在の日付と時刻を返します。 mysql> now() を選択します。 +---------------------+ | 今() | +---------------------+ | 2021-05-25 14:07:33 | +---------------------+ セット内の 1 行 (0.00 秒) 4: UNIX_TIMESTAMP(date) 関数: 日付 date の UNIX タイムスタンプを返します。 mysql> unix_timestamp(now()) を選択します。 +-----------------------+ | unix_timestamp(now()) | +-----------------------+ |1621922906 | +-----------------------+ セット内の1行(0.30秒) 5: FROM_UNIXTIME (unixtime) 関数: UNIX_TIMESTAMP(date) の逆演算である UNIXTIME タイムスタンプの日付値を返します。 mysql> from_unixtime(1621922906) を選択します。 +---------------------------+ | from_unixtime(1621922906) | +---------------------------+ | 2021-05-25 14:08:26 | +---------------------------+ セット内1列(0.31秒) 6: WEEK(DATE) 関数と YEAR(DATE) 関数: 前者は指定された日付の年の週を返し、後者は指定された日付の年を返します。 mysql> 週(now())、年(now())を選択します。 +-------------+--------------+ | 週(現在()) | 年(現在()) | +-------------+--------------+ | 21 | 2021 | +-------------+--------------+ セット内の 1 行 (0.00 秒) 7: HOUR(time) 関数と MINUTE(time) 関数: 前者は指定された時間の時間を返し、後者は指定された時間の分を返します。 mysql> 時間(now())、分(now())を選択します。 +-------------+---------------+ | 時間(現在()) | 分(現在()) | +-------------+---------------+ | 14 | 11 | +-------------+---------------+ セット内の 1 行 (0.00 秒) 8: MONTHNAME(date) 関数: 日付の英語の月名を返します。 mysql> 月名を選択します(now()); +------------------+ | 月名(現在()) | +------------------+ | 5月 | +------------------+ セット内の1行(0.30秒) 9: DATE_FORMAT(date,fmt) 関数: 文字列 fmt に従って日付値をフォーマットします。この関数は、指定された形式で日付を表示できます。使用可能なフォーマット文字は、次の表のとおりです。
mysql> date_format(now(),'%M,%D,%Y') を選択します。 +---------------------------------+ | date_format(now(),'%M,%D,%Y') | +---------------------------------+ | 2021年5月25日 | +---------------------------------+ セット内の 1 行 (0.00 秒) 10: 次の表に示すように、 MySQL の日付間隔タイプは次のとおりです。
mysql> now() を選択し、current、date_add(now()、interval 31 day)、after31days、date_add(now()、interval '1_2' year_month)、after_oneyear_twomonth; +---------------------+---------------------+------------------------+ | 現在 | 31日後 | 1年2か月後 | +---------------------+---------------------+------------------------+ | 2021-05-25 14:32:30 | 2021-06-25 14:32:30 | 2022-07-25 14:32:30 | +---------------------+---------------------+------------------------+ セット内の1行(0.03秒) 負の数を使用して、以前の日付と時刻に戻すこともできます。たとえば、以下の最初の列は現在の日付と時刻を返し、2 番目の列は現在の日付の 31 日前の日付と時刻を返し、3 番目の列は現在の日付の 1 年 2 か月前の日付と時刻を返します。 mysql> now() を選択し、現在の日付を追加します(now()、間隔 -31 日)、before31days、日付を追加します(now()、間隔 '-1_-2' 年_月)、before_oneyear_twomonth; +---------------------+---------------------+----------------------+ | 現在 | bef31days | bef_oneyear_twomonth | +---------------------+---------------------+----------------------+ | 2021-05-25 14:34:38 | 2021-04-24 14:34:38 | 2020-03-25 14:34:38 | +---------------------+---------------------+----------------------+ セット内の 1 行 (0.00 秒) 11: DATEDIFF (date1, date2) 関数: 2つの日付間の日数の差を計算するために使用されます mysql> datediff('2013-09-01',now()); を選択します。 +------------------------------+ | datediff('2013-09-01',now()) | +------------------------------+ |-2823 | +------------------------------+ セット内の1行(0.30秒) 4. プロセス機能MySQL のプロセス関数:
1: IF(value,tf)、例: 従業員の給与表を作成して初期化し、いくつかのテスト データを挿入します。月給が 2,000 元を超える従業員は高給であり、「高」で表され、月給が 2,000 元未満の従業員は低給であり、「低」で表されます。 mysql> テーブル salary(userid int,salary Decimal(9,2)) を作成します。 クエリは正常、影響を受けた行は 0 行 (0.47 秒) mysql> 給与の値に(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,null);を挿入します。 クエリは正常、6 行が影響を受けました (0.00 秒) 記録: 6 重複: 0 警告: 0 mysql> 給与から * を選択します。 +--------+---------+ | ユーザーID | 給与 | +--------+---------+ | 1 | 1000.00 | | 2 | 2000.00 | | 3 | 3000.00 | | 4 | 4000.00 | | 5 | 5000.00 | | 1 | NULL | +--------+---------+ セット内の 6 行 (0.00 秒) mysql> 給与から if(salary>2000,'high','low') を選択します。 +------------------------------+ | if(給与>2000,'最高','最低') | +------------------------------+ | 低い | | 低い | | 高い | | 高い | | 高い | | 低い | +------------------------------+ セット6行(0.31秒) 2: IFNULL(value1,value2) 関数は、一般的に NULL 値を置き換えるために使用されます。NULL 値は数値演算に参加できないことはご存じのとおりです。次のステートメントは、NULL 値を 0 に置き換えます。 mysql> 給与から ifnull(給与,0) を選択します。 +------------------+ | ifnull(給与,0) | +------------------+ | 1000.00 | | 2000.00 | | 3000.00 | | 4000.00 | | 5000.00 | | 0.00 | +------------------+ セット内の 6 行 (0.00 秒) 3:CASE WHEN [値1] THEN [結果1]…ELSE [デフォルト] END 関数: 上記の例の高給と低給の問題を解決するために、case when…then 関数を使用することもできます。 mysql> select case when salary<=2000 then 'low' else 'high' end from salary; +---------------------------------------------------+ | 給与が 2000 以下の場合は「低」、それ以外の場合は「高」終了 | +---------------------------------------------------+ | 低い | | 低い | | 高い | | 高い | | 高い | | 高い | +---------------------------------------------------+ セット6行(0.29秒) 4:CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]END 関数: ここでは、従業員の給与を複数の状況に応じて複数のレベルに分割することもできます。次の例では、高、中、低の 3 つのレベルに分割されています。 mysql> select case salary when 1000 then 'low' when 2000 then 'mid' else 'high' end from salary; +----------------------------------------------------------------------+ | 給与が 1000 の場合は「低」、2000 の場合は「中」、それ以外の場合は「高」になります | +----------------------------------------------------------------------+ | 低い | | 中 | | 高い | | 高い | | 高い | | 高い | +----------------------------------------------------------------------+ セット内の 6 行 (0.00 秒) 5. その他のよく使われる機能MySQL でよく使用されるその他の関数:
1: DATABASE() 関数: 現在のデータベース名を返します。 mysql> データベースを選択します(); +------------+ | データベース() | +------------+ | テスト | +------------+ セット内の 1 行 (0.00 秒) 2: VERSION() 関数: 現在のデータベース バージョンを返します。 mysql> バージョンを選択します(); +-----------+ | バージョン() | +-----------+ | 5.7.26 | +-----------+ セット内の 1 行 (0.00 秒) 3: USER() 関数: 現在ログインしているユーザー名を返します。 mysql> ユーザーを選択します(); +----------------+ | ユーザー() | +----------------+ | ルート@ローカルホスト | +----------------+ セット内の 1 行 (0.00 秒) 4: INET_ATON(IP) 関数: IP アドレスのネットワーク バイト オーダー表現を返します。 mysql> inet_aton('192.168.1.1') を選択します。 +--------------------------+ | inet_aton('192.168.1.1') | +--------------------------+ |3232235777 | +--------------------------+ セット内の1行(0.30秒) 5: INET_NTOA(num)関数: ネットワークバイトオーダーで表されるIPアドレスを返します。 mysql> inet_ntoa('3232235777') を選択します。 +-------------------------+ | inet_ntoa('3232235777') | +-------------------------+ | 192.168.1.1 | +-------------------------+ セット内の 1 行 (0.00 秒) 6: PASSWORD(str) 関数: 文字列 str の暗号化されたバージョン (41 ビットの文字列) を返します。 mysql> パスワードを選択します('1223456'); +------------------------------------------+ | パスワード('1223456') | +------------------------------------------+ | *3B5C2394E86BB91F1D03C5A1F2D3962BB287590B | +------------------------------------------+ セット内1行、警告1回(0.33秒) 7: MD5(str) 関数: 文字列 str の MD5 値を返します。これは、アプリケーションでデータを暗号化するためによく使用されます。 mysql> md5('123456') を選択します。 +----------------------------------+ | md5('123456') | +----------------------------------+ |e10adc3949ba59abbe56e057f20f883e | +----------------------------------+ セット内の1行(0.30秒) MySQL関数の包括的な概要に関するこの記事はこれで終わりです。より関連性の高いMySQL関数コンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: ElementUIカスタムCSSスタイルが有効にならない問題を解決する
1. ナビゲーション: 順序なしリストとその他のラベル要素ナビゲーションを記述するために最も一般的に...
目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...
Jenkins+Tomcatサーバーの設定中に、Tomcat設定ファイルが変更され、サーバーのTom...
1.1 ストレージエンジンの概要 1.1.1 ファイルシステムストレージファイル システム: オペ...
1. 公式ウェブサイトにアクセスして、jdk-8u162-linux-x64.tar.gzなどのLi...
目次1. ダウンロード2. nginxとnginx-vts-exporterをインストールする3. ...
この記事では、弾幕効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的な...
1.コマンドが見つかりません コマンドが見つかりません2. そのようなファイルまたはディレクトリは...
最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...
Windows と Linux 間でファイルを転送する場合は、Xftp ツールを使用できます。この...
async_hooks モジュールは、Node.js バージョン 8.0.0 に正式に追加された実験...
目次1. MySQL msiバージョンをダウンロードする2. インストール3. 環境変数を設定する1...
目次序文チェック制約作成、削除、表示制限要約する序文MySQL 8.0 では、チェック制約という非常...
IE8 や Chrome で上記の設定を使用すると、画面の最大幅に合わせて表示が統一され、各列の幅は...
目次クイックスタート使い方基本原則Vue2.x はコンポーネント通信に EventBus を使用しま...