質問するログイン新規登録

回答編集履歴

3

推敲

2021/10/08 09:15

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > u1 := string_to_array(p, chr(10)) --改行・tabをなくして配列に変換['1','2','3']できれば
2
2
 
3
- 区切り**LF+Tab**として指定すれば良いだけだと思います。
3
+ 区切りは文字列も使えますので、**LF+Tab**として指定すれば良いだけす。
4
4
  ```
5
5
  u1 := string_to_array(p, chr(10) || chr(9))
6
6
  ```

2

追記

2021/10/08 09:15

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -12,4 +12,9 @@
12
12
  ```
13
13
  WHERE array[id]::text[] <@ u1
14
14
  ```
15
- [9.19. 配列関数と演算子](https://www.postgresql.jp/document/13/html/functions-array.html)
15
+ [9.19. 配列関数と演算子](https://www.postgresql.jp/document/13/html/functions-array.html)
16
+
17
+ in演算子を使用する場合は、配列を展開する必要があります。
18
+ ```
19
+ WHERE id in (select unnest(u1))
20
+ ```

1

追記

2021/10/08 08:33

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -3,4 +3,13 @@
3
3
  区切りを**LF+Tab**として指定すれば良いだけだと思います。
4
4
  ```
5
5
  u1 := string_to_array(p, chr(10) || chr(9))
6
- ```
6
+ ```
7
+ それから、配列を条件にする場合に使用するのは、in演算子ではありません。
8
+ ```
9
+ WHERE cast(id,varchar) IN (u1) --IN句を使用して複数パラメータが渡った時に対応できるようにする
10
+ ```
11
+ 以下の様にします。
12
+ ```
13
+ WHERE array[id]::text[] <@ u1
14
+ ```
15
+ [9.19. 配列関数と演算子](https://www.postgresql.jp/document/13/html/functions-array.html)