このサイトにある、プラグラムの一部で知りたい事があります。実際に試せれば話は早いのですが、
sqlがmariaDBを使用しているためか、上手くいかないので教えて欲しいです。
知りたいのは下記プログラムの
SET student_names = SUBSTRING(student_names, 3);
は、サイトでも説明があるのですが、,(カンマ)を取り除いているらしいのですが、2文字目が,(カンマ)で3文字目から最後までを取得している処理だと思いますが、1文字目はどんなものが入っているのでしょうか?
https://mysql.sql55.com/sql/mysql-cursor.php
プログラム
DROP PROCEDURE IF EXISTS get_student_names;
DELIMITER //
CREATE PROCEDURE get_student_names (OUT student_names VARCHAR(4000))
BEGIN
DECLARE student_name VARCHAR(100) DEFAULT "";
DECLARE done INT DEFAULT FALSE;
DECLARE cur_student CURSOR FOR
SELECT CONCAT(first_name, ' ', last_name)
FROM students
ORDER BY first_name,
last_name;
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET done = TRUE;
SET student_names = '';
OPEN cur_student;
loop1: LOOP
FETCH cur_student INTO student_name;
IF done THEN
LEAVE loop1;
END IF;
SET student_names = CONCAT(student_names, ", ", student_name);
END LOOP loop1;
CLOSE cur_student;
SET student_names = SUBSTRING(student_names, 3);
END//
DELIMITER ;
No.3
- 回答日時:
>> 0文字の文字列 + カンマ文字 + 空白文字 + "太郎"
> SUBSTRINGで空白文字が先頭に来るように聞こえる
おそらく以下だと誤解していると思いますが
1文字目 = 0文字の文字列、の文字?
2文字目 = カンマ文字
3文字目 = 空白文字 ← SUBSTRINGした文字列の先頭
0文字の文字列は、文字数が0です
0ということは、結合すべき文字が無いです
文字が無いから、結合しても無視されます
なので、上記の連結結果は 0文字の文字列 が無視されて
1文字目 = カンマ文字
2文字目 = 空白文字
3文字目 = 太の文字 ← SUBSTRINGした文字列の先頭
No.2
- 回答日時:
読みずらいですが、引用符内の空白文字に着目しましょう。
一般にソースコード内では空白 U+0020 は無視される存在ですが、
引用符内では一文字毎にれっきとしたデータとして扱われます。
実行例)
SET student_names = '';
→ '' -- 0文字の文字列
SET student_names = CONCAT(student_names, ", ", student_name);
→ ', 太郎' -- 0文字の文字列 + カンマ文字 + 空白文字 + "太郎"
→ ', 太郎, 次郎'
→ ', 太郎, 次郎, 三郎'
SET student_names = SUBSTRING(student_names, 3);
→ '太郎, 次郎, 三郎' -- 先頭のカンマと空白を削除
0文字の文字列 + カンマ文字 + 空白文字 + "太郎"の説明だとSUBSTRINGで空白文字が先頭に来るように聞こえるのですが、補足してもらえると助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 関係代名詞(中学3年生) 4 2023/11/08 22:42
- 英語 提示文の構造について(名詞+be that V?) 2 2023/05/19 09:46
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- 英語 提示文の構造について 6 2022/08/25 10:40
- 英語 高校英語 英作文 4 2024/02/13 22:41
- Word(ワード) Wordの段落設定についての質問 2 2023/07/24 06:52
- 英語 No other student in this class is as pretty as Sat 1 2022/11/15 21:57
- TOEFL・TOEIC・英語検定 このwouldはどういう用法でどういう意味ですか?複合関係詞の慣用例です。 3 2022/11/02 04:56
- 英語 この英文の意味を教えて下さい。 2 2022/12/25 11:08
- Visual Basic(VBA) VBAに関して 2 2023/11/09 20:57
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
昔、銀行の入出金システムを開発する時、深夜帯におこなっていた話について・・・
その他(開発・運用・管理)
-
Notepad++の関数リスト表示の変更方法をお教えください。
C言語・C++・C#
-
csvファイルをlinuxコマンドで、元々重複していないレコードだけにしたいです。
教育ソフト・学習ソフト
-
-
4
QRコード運用方法について詳しい方ご教授頂きたいです
その他(開発・運用・管理)
-
5
mallocについて
C言語・C++・C#
-
6
Ubuntu系とCentOS系の違いはなんですか? 勝手にですが、前者はC++、後者はPythonの
UNIX・Linux
-
7
GPU
Mac OS
-
8
自作のウェブサイトを友人に見てもらいたいのですが、正常に閲覧できる人と、閲覧できない人がいる。
UNIX・Linux
-
9
Windows 10のサポート期限切れとともにパソコンの 大量廃棄が予想されているのでしょうか それ
Windows 10
-
10
このエラー内容について教えてくれませんか? sudo〜/sr0の一行は入力コマンドの写しの写しですね
UNIX・Linux
-
11
複数のフォルダを同時に参照したいが、上手い方法がわからない
UNIX・Linux
-
12
できてしまったw
教育ソフト・学習ソフト
-
13
Javascriptエラーの原因が分からない
JavaScript
-
14
c++でテンプレートのコードでわからないことがあります
C言語・C++・C#
-
15
ITパスポートの勉強をしています。 DIMMとはなんですか?簡単に説明していただきたいです。 ネット
その他(プログラミング・Web制作)
-
16
JavascriptのHTMLクラス表示について
JavaScript
-
17
Javascript で共通の処理をどこまでまとめるべきか分からないのでアドバイスお願い致します
JavaScript
-
18
なんでブラウザでPHPを動かすためだけにOSにPython2(Python3)を入れて、C(GCC)
PHP
-
19
Webプログラムってネイティブアプリプログラムに比べて遥かに簡単すぎる気がするのですが気の所為ですか
その他(プログラミング・Web制作)
-
20
ファイルの比較について教えてください
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL文で右から1文字だけ削除す...
-
sum()の出力結果順に並び替えを...
-
使うべきでない文字。
-
【MYSQL】asでリネームしてwher...
-
チェックボックスの項目をDBにi...
-
SQLの集計で「全て」の合計も表...
-
SQLサーバーは[main]![No]とい...
-
今週の日曜日から土曜日までの...
-
割合(パーセント)を求めるに...
-
初心者Mysqlの関数のsubstring...
-
【初歩】ラジオボタンをつかっ...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
実績累計の求め方と意味を教え...
-
Excelで、改行がある場合の条件...
-
select句副問い合わせ 値の個...
-
MERGE文を単体テーブルに対して...
-
Date型にNULLをセットしたい V...
-
select insertで複数テーブルか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL文で右から1文字だけ削除す...
-
使うべきでない文字。
-
【MYSQL】asでリネームしてwher...
-
sum()の出力結果順に並び替えを...
-
初心者Mysqlの関数のsubstring...
-
SQLの集計で「全て」の合計も表...
-
割合(パーセント)を求めるに...
-
MySQL のデータからドロップダ...
-
チェックボックスの項目をDBにi...
-
【初歩】ラジオボタンをつかっ...
-
カウント結果を1レコードの中...
-
MySQLで MAX()とGROUP BYを使う...
-
phpmyadminはトリガーやIF文を...
-
月別、販売員別の集計がわかり...
-
replaceした上でwhere
-
今週の日曜日から土曜日までの...
-
サブクエリ内で INNER JOIN は
-
複数の表の条件でのDELETE文
-
mySQLでグループ別の順位を入力
-
姓名の前後を入れ替えるSQL命令...
おすすめ情報