回答編集履歴

9

テキスト修正

2018/10/13 11:42

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
 
64
64
 
65
- 参考になれば幸いです。
65
+ 以上、参考になれば幸いです。
66
66
 
67
67
 
68
68
 

8

テキスト修正

2018/10/13 11:42

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 質問への追記・修正の依頼からもお尋ねしたとおり、お使いのデータベースが何かを知りたいところですが、`char_length` をサポートしているデータベース(例:MySQL 5.6 の [CHAR_LENGTH](https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_char-length) ) であれば、以下の修正でよいと思います。
5
+ 質問への追記・修正の依頼からもお尋ねしたとおり、お使いのデータベースが何かを知りたいところですが、`char_length` をサポートしているデータベースであれば、以下の修正でよいと思います。
6
6
 
7
7
 
8
8
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- **修正後:**
21
+ **修正後:** (※下記のように変数名は、@book**s** と、複数形にしたほうがよいでしょう。)
22
22
 
23
23
  ```ruby
24
24
 
@@ -26,13 +26,15 @@
26
26
 
27
27
  ```
28
28
 
29
- ※上記のように変数名は、@book**s** と、複数形にしたほうがよいでしょう。
30
29
 
31
30
 
32
31
 
33
32
 
33
+ 例えば、MySQL 5.6 は [char_length関数](https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_char-length) をサポートしています。
34
34
 
35
+
36
+
35
- 以下にも`char_length` を使用するコード例が掲載されています。
37
+ 以下`char_length` を使用するコード例す。
36
38
 
37
39
 
38
40
 
@@ -72,7 +74,7 @@
72
74
 
73
75
 
74
76
 
75
- または、以下のように Ruby の [sort](https://ref.xaio.jp/ruby/classes/array/sort) を使こともできます。
77
+ SQLの関数を使わずに、以下のように Ruby の [sort](https://ref.xaio.jp/ruby/classes/array/sort) を使って、name の長さの降順にソートすることもできます。
76
78
 
77
79
 
78
80
 

7

テキスト修正

2018/10/13 11:35

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 質問への追記・修正の依頼からもお尋ねしたとおり、お使いのデータベースが何かを知りたいところですが、`char_length` をサポートしているデータベースであれば、以下の修正でよいと思います。
5
+ 質問への追記・修正の依頼からもお尋ねしたとおり、お使いのデータベースが何かを知りたいところですが、`char_length` をサポートしているデータベース(例:MySQL 5.6 の [CHAR_LENGTH](https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_char-length) ) であれば、以下の修正でよいと思います。
6
6
 
7
7
 
8
8
 

6

テキスト修正

2018/10/13 11:23

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 質問への追記・修正の依頼書いように、データベースが何かを知りたいところですが、char_length をサポートしているデータベースであれば、以下の修正でよいと思います。
5
+ 質問への追記・修正の依頼からお尋ねしとおりお使いのデータベースが何かを知りたいところですが、`char_length` をサポートしているデータベースであれば、以下の修正でよいと思います。
6
6
 
7
7
 
8
8
 
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- 以下にもchar_length を使用するコードが掲載されています。
35
+ 以下にも`char_length` を使用するコードが掲載されています。
36
36
 
37
37
 
38
38
 
@@ -48,15 +48,15 @@
48
48
 
49
49
 
50
50
 
51
- なお、データベースによっては、char_length の替わりに別の関数を使う必要があります。文字列の文字数を取得するために、char_lengthではない関数を使うデータベースについては、以下をご参照ください。
51
+ なお、データベースによっては、`char_length` の替わりに別の関数を使う必要があります。文字列の文字数を取得するために、`char_length`ではない関数を使うデータベースについては、以下をご参照ください。
52
52
 
53
53
 
54
54
 
55
55
  > SQL中で文字列の文字数を取得する関数としてSQL92/99ではCHAR_LENGTH関数が定義されています.しかし,多くのDBMSは独自で同様の機能をもつ関数を用意しています.
56
56
 
57
+ >
57
58
 
58
-
59
- 以上、逆引きSQL構文集: [文字列の文字数を取得する](http://www.sql-reference.com/string/char_length.html) より引用
59
+ > (以上、**逆引きSQL構文集:** [文字列の文字数を取得する](http://www.sql-reference.com/string/char_length.html) より引用)
60
60
 
61
61
 
62
62
 

5

テキスト修正

2018/10/13 11:15

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 質問への追記・修正の依頼にも書いたように、データベースが何かを知りたいところですが、以下の修正でうまくくかもしれせん
5
+ 質問への追記・修正の依頼にも書いたように、データベースが何かを知りたいところですが、char_length をサポートしているデータベースであれば、以下の修正でと思い
6
6
 
7
7
 
8
8
 
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- 以下にも char_length を使用するコードが掲載されています。
35
+ 以下にもchar_length を使用するコードが掲載されています。
36
36
 
37
37
 
38
38
 
@@ -48,7 +48,21 @@
48
48
 
49
49
 
50
50
 
51
+ なお、データベースによっては、char_length の替わりに別の関数を使う必要があります。文字列の文字数を取得するために、char_lengthではない関数を使うデータベースについては、以下をご参照ください。
52
+
53
+
54
+
55
+ > SQL中で文字列の文字数を取得する関数としてSQL92/99ではCHAR_LENGTH関数が定義されています.しかし,多くのDBMSは独自で同様の機能をもつ関数を用意しています.
56
+
57
+
58
+
59
+ 以上、逆引きSQL構文集: [文字列の文字数を取得する](http://www.sql-reference.com/string/char_length.html) より引用
60
+
61
+
62
+
51
63
  参考になれば幸いです。
64
+
65
+
52
66
 
53
67
 
54
68
 
@@ -67,21 +81,3 @@
67
81
  @books = Book.all.sort {|a,b| b.name.length <=> a.name.length }
68
82
 
69
83
  ```
70
-
71
-
72
-
73
- ---
74
-
75
- **追記2**
76
-
77
-
78
-
79
- 冒頭に、「以下の修正でうまくいくかもしれません。」と書いたように、初めの回答に書いたchar_lengthを使う方法は、データベースによっては、char_length の替わりに別の関数を使う必要があります。char_lengthではない関数を使うデータベースについては、以下をご参照ください。
80
-
81
-
82
-
83
- > SQL中で文字列の文字数を取得する関数としてSQL92/99ではCHAR_LENGTH関数が定義されています.しかし,多くのDBMSは独自で同様の機能をもつ関数を用意しています.
84
-
85
-
86
-
87
- 以上、逆引きSQL構文集: [文字列の文字数を取得する](http://www.sql-reference.com/string/char_length.html) より引用

4

テキスト修正

2018/10/13 10:56

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -67,3 +67,21 @@
67
67
  @books = Book.all.sort {|a,b| b.name.length <=> a.name.length }
68
68
 
69
69
  ```
70
+
71
+
72
+
73
+ ---
74
+
75
+ **追記2**
76
+
77
+
78
+
79
+ 冒頭に、「以下の修正でうまくいくかもしれません。」と書いたように、初めの回答に書いたchar_lengthを使う方法は、データベースによっては、char_length の替わりに別の関数を使う必要があります。char_lengthではない関数を使うデータベースについては、以下をご参照ください。
80
+
81
+
82
+
83
+ > SQL中で文字列の文字数を取得する関数としてSQL92/99ではCHAR_LENGTH関数が定義されています.しかし,多くのDBMSは独自で同様の機能をもつ関数を用意しています.
84
+
85
+
86
+
87
+ 以上、逆引きSQL構文集: [文字列の文字数を取得する](http://www.sql-reference.com/string/char_length.html) より引用

3

テキスト修正

2018/10/13 10:45

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -22,9 +22,13 @@
22
22
 
23
23
  ```ruby
24
24
 
25
- @book = Book.order('char_length(name) desc')
25
+ @books = Book.order('char_length(name) desc')
26
26
 
27
27
  ```
28
+
29
+ ※上記のように変数名は、@book**s** と、複数形にしたほうがよいでしょう。
30
+
31
+
28
32
 
29
33
 
30
34
 
@@ -37,14 +41,6 @@
37
41
 
38
42
 
39
43
     
40
-
41
-
42
-
43
-
44
-
45
-   
46
-
47
-
48
44
 
49
45
  - Railsガイド:[Active Record マイグレーション 3.9 reversibleを使用する](https://railsguides.jp/active_record_migrations.html#reversible%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B)
50
46
 
@@ -71,5 +67,3 @@
71
67
  @books = Book.all.sort {|a,b| b.name.length <=> a.name.length }
72
68
 
73
69
  ```
74
-
75
- ※上記のように変数名は、@book**s** と、複数形にしたほうがよいでしょう。

2

テキスト修正

2018/10/13 10:28

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  ```ruby
70
70
 
71
- @books = Book.all.sort {|a,b| b.name.length - a.name.length }
71
+ @books = Book.all.sort {|a,b| b.name.length <=> a.name.length }
72
72
 
73
73
  ```
74
74
 

1

テキスト修正

2018/10/13 10:18

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -53,3 +53,23 @@
53
53
 
54
54
 
55
55
  参考になれば幸いです。
56
+
57
+
58
+
59
+ ---
60
+
61
+ **追記**
62
+
63
+
64
+
65
+ または、以下のように Ruby の [sort](https://ref.xaio.jp/ruby/classes/array/sort) を使うこともできます。
66
+
67
+
68
+
69
+ ```ruby
70
+
71
+ @books = Book.all.sort {|a,b| b.name.length - a.name.length }
72
+
73
+ ```
74
+
75
+ ※上記のように変数名は、@book**s** と、複数形にしたほうがよいでしょう。