![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
このサイトにある、プラグラムの一部で知りたい事があります。実際に試せれば話は早いのですが、
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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Javascriptエラーの原因が分からない
JavaScript
-
JavascriptのHTMLクラス表示について
JavaScript
-
Javascript で共通の処理をどこまでまとめるべきか分からないのでアドバイスお願い致します
JavaScript
-
-
4
なんでブラウザでPHPを動かすためだけにOSにPython2(Python3)を入れて、C(GCC)
PHP
-
5
Webプログラムってネイティブアプリプログラムに比べて遥かに簡単すぎる気がするのですが気の所為ですか
その他(プログラミング・Web制作)
-
6
ファイルの比較について教えてください
Windows 10
-
7
pythonで複数画像からgifを作る方法
その他(プログラミング・Web制作)
-
8
CSS、Bootstrapについて containerはなんのためにあるのですか?単にレイアウトする
HTML・CSS
-
9
GT/sをGB/sへの換算方法
ネットワーク
-
10
昔、銀行の入出金システムを開発する時、深夜帯におこなっていた話について・・・
その他(開発・運用・管理)
-
11
PHPとHTML+Xamppの掲示板で画像も投稿できるように
PHP
-
12
JavaScript 超初心者です。 Document.writeがなぜか反映されません。何が間違っ
JavaScript
-
13
Notepad++の関数リスト表示の変更方法をお教えください。
C言語・C++・C#
-
14
時間によってファイル名が変わるエクセルをほかのエクセルでデータを参照する方法
Excel(エクセル)
-
15
こちらはただの直列処理ですか?
PHP
-
16
Windows formアプリで データグリッドビューのスキーマをそのままに空のデータテーブルを取得
C言語・C++・C#
-
17
javaScriptのコードの修正をお願いします。
JavaScript
-
18
HTMLでサブフレームから親のスクリプトを実行する
JavaScript
-
19
Officeの字体
その他(Microsoft Office)
-
20
Wordはページ数=枚数ですか?
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL文で右から1文字だけ削除す...
-
使うべきでない文字。
-
【MYSQL】asでリネームしてwher...
-
カウント結果を1レコードの中...
-
SQLの集計で「全て」の合計も表...
-
MySQLにて特定レコードのみを抽...
-
sum()の出力結果順に並び替えを...
-
割合(パーセント)を求めるに...
-
チェックボックスの項目をDBにi...
-
JOINでの結果取得 サブクエリ...
-
【初歩】ラジオボタンをつかっ...
-
MySQLで MAX()とGROUP BYを使う...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
[VB6]プログレスバーコントロー...
-
SELECTで1件のみ取得するには?
-
外部結合とor条件混在の記述方法
-
実績累計の求め方と意味を教え...
-
Excelでセルの書式設定を使用し...
-
ファイル書込みで一行もしくは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL文で右から1文字だけ削除す...
-
使うべきでない文字。
-
【MYSQL】asでリネームしてwher...
-
SQLの集計で「全て」の合計も表...
-
カウント結果を1レコードの中...
-
チェックボックスの項目をDBにi...
-
【初歩】ラジオボタンをつかっ...
-
sum()の出力結果順に並び替えを...
-
割合(パーセント)を求めるに...
-
MySQLで MAX()とGROUP BYを使う...
-
月別、販売員別の集計がわかり...
-
MySQL のデータからドロップダ...
-
phpmyadminはトリガーやIF文を...
-
サブクエリ内で INNER JOIN は
-
初心者Mysqlの関数のsubstring...
-
複数の表の条件でのDELETE文
-
Oracleの監視。
-
何にかが違うから エラーなんで...
-
JOINでの結果取得 サブクエリ...
-
MySQLにて特定レコードのみを抽...
おすすめ情報