質問編集履歴
4
ソースコードを修正しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
unionで結合済みのテーブルの複数列で、LIKEに該当する語句の数が多い順にデータを並び替えたい。
|
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
【実現したいこと】
|
2
|
+
|
1
|
-
|
3
|
+
unionで結合済みのテーブルの複数列で、LIKEに該当する語句の数が多い順にデータを並び替えたい。
|
2
4
|
|
3
5
|
|
4
6
|
|
@@ -44,10 +46,6 @@
|
|
44
46
|
|
45
47
|
|4|とまと|りんご|
|
46
48
|
|
47
|
-
|5|とまと|なすとまと|
|
48
|
-
|
49
|
-
|6|なす|なす|
|
50
|
-
|
51
49
|
|
52
50
|
|
53
51
|
↓
|
@@ -86,6 +84,12 @@
|
|
86
84
|
|
87
85
|
```ここに言語を入力
|
88
86
|
|
89
|
-
SELECT * FROM フルーツ WHERE cont1,cont2 LIKE '%りんご%'
|
87
|
+
SELECT * FROM フルーツ WHERE cont1,cont2 LIKE '%りんご%'
|
88
|
+
|
89
|
+
union all
|
90
|
+
|
91
|
+
SELECT * FROM やさい WHERE cont4 LIKE '%りんご%'
|
92
|
+
|
93
|
+
order by (LENGTH(cont1) - LENGTH(REPLACE(cont1,"りんご",""))) + (LENGTH(cont2) - LENGTH(REPLACE(cont2,"りんご",""))) + (LENGTH(cont4) - LENGTH(REPLACE(cont4,"りんご",""))) DESC
|
90
94
|
|
91
95
|
```
|
3
見やすくしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
テーブル
|
21
|
+
テーブル:フルーツ
|
22
22
|
|
23
23
|
|
24
24
|
|
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
テーブル
|
37
|
+
テーブル:やさい
|
38
38
|
|
39
39
|
|
40
40
|
|
@@ -49,6 +49,14 @@
|
|
49
49
|
|6|なす|なす|
|
50
50
|
|
51
51
|
|
52
|
+
|
53
|
+
↓
|
54
|
+
|
55
|
+
↓
|
56
|
+
|
57
|
+
以下のように「りんご」という語句の数が多い順に並べ替えたいです。
|
58
|
+
|
59
|
+
↓
|
52
60
|
|
53
61
|
↓
|
54
62
|
|
2
見やすくしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,12 +1,20 @@
|
|
1
1
|
SQLの複数列でLIKEに該当する語句の数が多い順にデータを並び替えることはできますでしょうか。
|
2
2
|
|
3
3
|
|
4
|
+
|
5
|
+
```ここに言語を入力
|
4
6
|
|
5
7
|
SELECT cont1,cont2,null as cont3,null as cont4 FROM フルーツ WHERE cont1,cont2 LIKE '%りんご%'
|
6
8
|
|
7
9
|
union all
|
8
10
|
|
9
11
|
SELECT null,null,cont3,cont4 FROM やさい WHERE cont4 LIKE '%りんご%'
|
12
|
+
|
13
|
+
```
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
---
|
10
18
|
|
11
19
|
|
12
20
|
|
@@ -60,6 +68,16 @@
|
|
60
68
|
|
61
69
|
|
62
70
|
|
71
|
+
---
|
72
|
+
|
73
|
+
|
74
|
+
|
63
75
|
以下では上手く動きませんでした。
|
64
76
|
|
77
|
+
|
78
|
+
|
79
|
+
```ここに言語を入力
|
80
|
+
|
65
81
|
SELECT * FROM フルーツ WHERE cont1,cont2 LIKE '%りんご%' order by (LENGTH(cont1) - LENGTH(REPLACE(cont1,"りんご",""))) + (LENGTH(cont2) - LENGTH(REPLACE(cont2,"りんご",""))) + (LENGTH(cont4) - LENGTH(REPLACE(cont4,"りんご",""))) DESC
|
82
|
+
|
83
|
+
```
|
1
より詳細に記載しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,11 +2,15 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
SELECT cont1,cont2,null as cont3,null as cont4 FROM フルーツ WHERE cont1,cont2 LIKE '%りんご%'
|
6
|
+
|
7
|
+
union all
|
8
|
+
|
5
|
-
SELECT
|
9
|
+
SELECT null,null,cont3,cont4 FROM やさい WHERE cont4 LIKE '%りんご%'
|
6
10
|
|
7
11
|
|
8
12
|
|
9
|
-
テーブル(名前:フルーツ)
|
13
|
+
テーブル1(名前:フルーツ)
|
10
14
|
|
11
15
|
|
12
16
|
|
@@ -22,13 +26,29 @@
|
|
22
26
|
|
23
27
|
|
24
28
|
|
29
|
+
テーブル2(名前:やさい)
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
|id|cont3|cont4|
|
34
|
+
|
35
|
+
|:--|:--:|--:|
|
36
|
+
|
37
|
+
|4|とまと|りんご|
|
38
|
+
|
39
|
+
|5|とまと|なすとまと|
|
40
|
+
|
41
|
+
|6|なす|なす|
|
42
|
+
|
43
|
+
|
44
|
+
|
25
45
|
↓
|
26
46
|
|
27
47
|
|
28
48
|
|
29
|
-
|id|cont1|cont2|
|
49
|
+
|id|cont1|cont2|cont4|
|
30
50
|
|
31
|
-
|:--|:--:|--:|
|
51
|
+
|:--|:--:|--:|--:|
|
32
52
|
|
33
53
|
|3|みかんみかんりんごりんごりんご|ぶどうりんご|
|
34
54
|
|
@@ -36,10 +56,10 @@
|
|
36
56
|
|
37
57
|
|1|りんごりんごみかん|ぶどう|
|
38
58
|
|
59
|
+
|4|||りんご
|
39
60
|
|
40
61
|
|
41
62
|
|
63
|
+
以下では上手く動きませんでした。
|
42
64
|
|
43
|
-
|
44
|
-
|
45
|
-
SELECT * FROM フルーツ WHERE cont1,cont2 LIKE '%りんご%' order by (LENGTH(cont1) - LENGTH(REPLACE(cont1,"りんご",""))) DESC
|
65
|
+
SELECT * FROM フルーツ WHERE cont1,cont2 LIKE '%りんご%' order by (LENGTH(cont1) - LENGTH(REPLACE(cont1,"りんご",""))) + (LENGTH(cont2) - LENGTH(REPLACE(cont2,"りんご",""))) + (LENGTH(cont4) - LENGTH(REPLACE(cont4,"りんご",""))) DESC
|