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