SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【MySQL】文字列の連結(文字列の定義)

このSQL,エラーにはなりません。

SELECT 'foo'
'bar';

少なくとも1つの改行を含んだ空白で区切られている場合は、2つの定数は連結されます。

これと一緒です。

SELECT 'foobar';

SQLの標準規格で決められています。

もしこのような記述をしてエラーが発生しなくても、不思議ではない。むしろ標準だということでした。

SELECT * from A
where id in (
'123456'
'123456'
'123456'
);/* カンマがない */
insert into A (x) values (
'123456'
'123456'
'123456'
);/* カンマがない */

MySQLのマニュアルではこちらに記載があります。

SQL-92の資料にもそれらしき内容がありました。

(前略)
<character string literal> ::=
[ <introducer><character set specification> ]
<quote> [ <character representation>... ] <quote>
[ { <separator>... <quote> [ <character representation>... ] <quote> }... ]
(中略)
<separator> ::= { <comment> | <space> | <newline> }...
(後略)

文字列とは、セパレータで区切られていてよい。セパレータには、コメントとスペースと改行を含められる。(と読んでいいのかな)

PosgreSQLのドキュメントにも記載があります。

関連するメモ

コメント