PostgreSQL エラー「ERROR: 演算子が存在しません: text = integer」が発生した場合の対処法
- 作成日 2023.01.02
- PostgreSQL
- PostgreSQL
PostgreSQLで、エラー「ERROR: 演算子が存在しません: text = integer」が発生した場合の対処法を記述してます。型がtextのカラムにintegerでwhere inなどを使用した際に発生します。実行結果はpgadmin上で確認してます。
環境
- OS CentOS Stream release 9
- PostgreSQL 15.1
- pgadmin4 6.16
エラーメッセージ
以下のテーブル「testtbl」で、textの「name」に「where in」で数値を指定した際に発生。
実行したクエリは以下となります。
select * from testtbl
where name in(111,222);
エラーメッセージ
ERROR: 演算子が存在しません: text = integer
LINE 2: where name in(111,222);
^
HINT: 指定した名称と引数の型に合う演算子がありません。明示的な型キャストが必要かもしれません。
SQL 状態: 42883
文字: 34
原因
text型に対して「where in」で「数値」を指定しているため。
対処法
単純に文字として指定するか、
select * from testtbl
where name in('111','222');
実行結果
または型変換を行います。
select * from testtbl
where name::integer in(111,222);
実行結果
-
前の記事
PostgreSQL 逆双曲線逆余弦 (アークハイパーボリックサイン)を取得する 2023.01.02
-
次の記事
Rust ベクタ(可変配列)の値を任意の数で後ろから順番に区切る 2023.01.02
コメントを書く