PostgreSQLで文字列が対象の文字列を含むかどうかを判断する様々な方法
2022-01-10 16:38:07
PostgreSQLには、文字列が含まれているかどうかを判断する方法がいくつかあります。
方法1:position(string内の部分文字列):
position(substring in string)関数:パラメータ1:対象文字列、パラメータ2:元の文字列、対象文字列を含む場合、対象文字列の最初の出現位置を返す、戻り値が0より大きいかどうかで対象文字列を含むかどうかを判断することができます。
select position('aa' in 'abcd');
position
----------
0
select position('ab' in 'abcd');
position
----------
1
select position('ab' in 'abcdab');
position
----------
1
方法2:strpos(文字列, 部分文字列)
strpos(string, substring) function: parameter one: original string, target string, the position of the declared substring, the role is same as the position function.strpos(string,substring)関数: パラメータ1: original string, target string, the position of the declaration substring.
select position('abcd','aa');
position
----------
0
select position('abcd','ab');
position
----------
1
select position('abcdab','ab');
position
----------
1
方法3:正規表現を使う
対象の文字列が含まれていればt、含まれていなければfを返す
select 'abcd' ~ 'aa' as result;
result
------
f
select 'abcd' ~ 'ab' as result;
result
------
t
select 'abcdab' ~ 'ab' as result;
result
------
t
方法4:配列に@>演算子を使う(含まれているかどうかが正確にわからない)
select regexp_split_to_array('abcd','') @> array['b','e'] as result;
result
------
f
select regexp_split_to_array('abcd','') @> array['a','b'] as result;
result
------
t
以下の例に注目してください。
select regexp_split_to_array('abcd','') @> array['a','a'] as result;
result
----------
t
select regexp_split_to_array('abcd','') @> array['a','c'] as result;
result
----------
t
select regexp_split_to_array('abcd','') @> array['a','c','a','c'] as result;
result
----------
t
このように、配列の包含演算子は、包含されていれば順序や繰り返しに関係なく真を返しますので、実際に使用する際には注意してください。
PostgreSQLで対象の文字列を含むかどうかを判断する方法は以上です。PostgreSQLで文字列を判定する方法については、BinaryDevelopの過去の記事を検索するか、以下の記事を引き続き閲覧してください。
関連
-
PostgreSQLのJSONBのマッチングと交差の問題について
-
PostgreSQLでバッファキャッシュにデータを読み込む方法
-
PostgreSQLのユーザーログイン失敗時の自動ロック解決策
-
どのように定期的にLinux上でpostgresqlのデータベースをバックアップする
-
Postgresql データベース timescaledb timescaledb 問題 大容量データテーブルをスーパーテーブルに変換すること
-
PostgreSQLがバキュームテーブルの情報を収集する必要があることを発見する方法
-
PostgreSQLにおけるsequence、serial、identityの使い方の違いについて
-
Postgresqlのシーケンススキップの問題を解決する
-
PostgreSqlのhash_code関数の使用法
-
PostgreSQLで時間指定タスクを実装する4つの方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLのURL解決方法
-
postgresのjsonbプロパティの利用について
-
Postgresqlの高度なアプリケーションは、セルのアイデアをマージするの詳細
-
Postgresqlのユーザーログインエラーの回数を制限するサンプルコード
-
エクセルテーブルのデータをpostgresqlのデータベースにインポートする方法
-
Postgresqlのデータベース権限まとめ
-
GROUP BY句での定数使用に関するPostgreSQLの特別な制限について説明します。
-
Postgresqlのデータは、2つのフィールドを追加し、一意の操作を統合する
-
PostgreSQLはバッチ実行のためにSQLをファイルに実装しています。
-
oracle_fdwを介してOracleデータにアクセスするためのPostgreSQLの手順