DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(mysql.info.gz) String syntax

Info Catalog (mysql.info.gz) Literals (mysql.info.gz) Literals (mysql.info.gz) Number syntax
 
 9.1.1 Strings
 -------------
 
 A string is a sequence of characters, surrounded by either single quote
 (`'') or double quote (`"') characters.  Examples:
 
      'a string'
      "another string"
 
 If the server SQL mode has `ANSI_QUOTES' enabled, string literals can be
 quoted only with single quotes. A string quoted with double quotes will
 be interpreted as an identifier.
 
 As of MySQL 4.1.1, string literals may have an optional character set
 introducer and `COLLATE' clause:
 
      [_CHARSET_NAME]'STRING' [COLLATE COLLATION_NAME]
 
 Examples:
      SELECT _latin1'STRING';
      SELECT _latin1'STRING' COLLATE latin1_danish_ci;
 
 For more information about these forms of string syntax, see 
 Charset-literal.
 
 Within a string, certain sequences have special meaning.  Each of these
 sequences begins with a backslash (`\'), known as the _escape
 character_.  MySQL recognizes the following escape sequences:
 
 `\0'    An ASCII 0 (`NUL') character.
 `\''    A single quote (`'') character.
 `\"'    A double quote (`"') character.
 `\b'    A backspace character.
 `\n'    A newline (linefeed) character.
 `\r'    A carriage return character.
 `\t'    A tab character.
 `\Z'    ASCII 26 (Control-Z).  This character can be encoded as `\Z' to
         allow you to work around the problem that ASCII 26 stands for
         END-OF-FILE on Windows.  (ASCII 26 will cause problems if you
         try to use `mysql DB_NAME < FILE_NAME'.)
 `\\'    A backslash (`\') character.
 `\%'    A `%' character. See note following table.
 `\_'    A `_' character. See note following table.
 
 These sequences are case sensitive. For example, `\b' is interpreted as
 a backspace, but `\B' is interpreted as `B'.
 
 The `\%' and `\_' sequences are used to search for literal instances of
 `%' and `_' in pattern-matching contexts where they would otherwise be
 interpreted as wildcard characters.  String comparison functions.
 Note that if you use `\%' or `\_' in other contexts, they return the
 strings `\%' and `\_' and not `%' and `_'.
 
 In all other escape sequences, backslash is ignored.  That is, the
 escaped character is interpreted as if it was not escaped.
 
 There are several ways to include quotes within a string:
 
    * A `'' inside a string quoted with `'' may be written as `'''.
 
    * A `"' inside a string quoted with `"' may be written as `""'.
 
    * You can precede the quote character with an escape character (`\').
 
    * A `'' inside a string quoted with `"' needs no special treatment
      and need not be doubled or escaped.  In the same way, `"' inside a
      string quoted with `'' needs no special treatment.
 
 The following `SELECT' statements demonstrate how quoting and escaping
 work:
 
      mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
      +-------+---------+-----------+--------+--------+
      | hello | "hello" | ""hello"" | hel'lo | 'hello |
      +-------+---------+-----------+--------+--------+
 
      mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
      +-------+---------+-----------+--------+--------+
      | hello | 'hello' | ''hello'' | hel"lo | "hello |
      +-------+---------+-----------+--------+--------+
 
      mysql> SELECT 'This\nIs\nFour\nLines';
      +--------------------+
      | This
      Is
      Four
      Lines |
      +--------------------+
 
      mysql> SELECT 'disappearing\ backslash';
      +------------------------+
      | disappearing backslash |
      +------------------------+
 
 If you want to insert binary data into a string column (such as a
 `BLOB'), the following characters must be represented by escape
 sequences:
 
 `NUL'   `NUL' byte (ASCII 0).  Represent this character by `\0' (a
         backslash followed by an ASCII `0' character).
 `\'     Backslash (ASCII 92).  Represent this character by `\\'.
 `''     Single quote (ASCII 39).  Represent this character by `\''.
 `"'     Double quote (ASCII 34).  Represent this character by `\"'.
 
 When writing application programs, any string that might contain any of
 these special characters must be properly escaped before the string is
 used as a data value in an SQL statement that is sent to the MySQL
 server.  You can do this in two ways:
 
    * Process the string with a function that escapes the special
      characters.  For example, in a C program, you can use the
      `mysql_real_escape_string()' C API function to escape characters.
       `mysql_real_escape_string()' mysql_real_escape_string.  The
      Perl DBI interface provides a `quote' method to convert special
      characters to the proper escape sequences.   Perl.
 
    * As an alternative to explicitly escaping special characters, many
      MySQL APIs provide a placeholder capability that allows you to
      insert special markers into a query string, and then bind data
      values to them when you issue the query.  In this case, the API
      takes care of escaping special characters in the values for you.
 
 
Info Catalog (mysql.info.gz) Literals (mysql.info.gz) Literals (mysql.info.gz) Number syntax
automatically generated byinfo2html