9.6 Comment Syntax

MySQL Server supports three comment styles:

From a “#” character to the
end of the line.

From a “-- ” sequence to
the end of the line. In MySQL, the
“-- ” (double-dash)
comment style requires the second dash to be followed by at
least one whitespace or control character (such as a space,
tab, newline, and so on). This syntax differs slightly from
standard SQL comment syntax, as discussed in
Section 1.8.2.5, “'--' as the Start of a Comment”.

From a /* sequence to the following
*/ sequence, as in the C programming
language. This syntax enables a comment to extend over
multiple lines because the beginning and closing sequences
need not be on the same line.

The following example demonstrates all three comment styles:

mysql> SELECT 1+1; # This comment continues to the end of line
mysql> SELECT 1+1; -- This comment continues to the end of line
mysql> SELECT 1 /* this is an in-line comment */ + 1;
mysql> SELECT 1+/*this is amultiple-line comment*/1;

Nested comments are not supported.

MySQL Server supports some variants of C-style comments. These
enable you to write code that includes MySQL extensions, but is
still portable, by using comments of the following form:

/*! MySQL-specific code */

In this case, MySQL Server parses and executes the code within the
comment as it would any other SQL statement, but other SQL servers
will ignore the extensions. For example, MySQL Server recognizes
the STRAIGHT_JOIN keyword in the following
statement, but other servers will not:

SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...

If you add a version number after the
“!” character, the syntax within
the comment is executed only if the MySQL version is greater than
or equal to the specified version number. The
TEMPORARY keyword in the following comment is
executed only by servers from MySQL 3.23.02 or higher:

CREATE /*!32302 TEMPORARY */ TABLE t (a INT);

The comment syntax just described applies to how the
mysqld server parses SQL statements. The
mysql client program also performs some parsing
of statements before sending them to the server. (It does this to
determine statement boundaries within a multiple-statement input
line.)

Comments in this format, /*!12345 ... */, are
not stored on the server. If this format is used to comment stored
routines, the comments will not be retained on the server.

The use of short-form mysql commands such as
\C within multi-line /* ...
*/ comments is not supported.