3.1: Строки в MySQL
Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Строки в MySQL
Строка представляет собой последовательность символов, окруженных одиночными (") или двойными кавычками («). Примеры:
"a string"
"another string"
Внутри строки некоторые последовательности имеют специальное значение. Каждая из этих последовательностей начинается с наклонной черты влево (\), известной как управляющий символ (escape character). MySQL распознает следующие управляющие последовательности (таблица 3.1):
Таблица 3.1. Перечень управляющих последовательностей.
\0 | Символ с кодом ASCII О (NUL) |
\ | Символ одиночной кавычки (") |
\» | Символ двойной кавычки («) |
\b | Символ backspace |
\n | Символ новой строки |
\r | Символ возврата каретки |
\t | Символ табуляции |
\z | Символ с кодом 26, то есть ASCII(26), он же Control-Z. Этот символ может быть закодирован, чтобы позволить вам обойти проблему восприятия ASCII(26) как символа конца файла под Windows. ASCII(26) вызовет проблемы, если вы попробуете использовать команду mysql database < filename |
\\ | Символ backslash (\). |
\% | Символ %. Это используется, чтобы искать литеральные образцы % в контекстах, где % иначе интерпретировался бы как групповой символ (шаблон). |
\_ | Символ _. Это используется, чтобы искать литеральные образцы _ в контекстах, где _ иначе интерпретировался бы как групповой символ (шаблон). |
Обратите внимание, что если вы используете \% или \_, в некоторых контекстах они возвратят строки \% и \_ вместо % и _.
Включить кавычки в строку можно несколькими способами:
- " внутри строки, ограниченной ", может быть написано как ""
- "«" внутри строки, ограниченной «, может быть написано как «»
- вы можете предварить кавычку символом \
- " внутри строки, ограниченной «, не требует специальной обработки или экранировки. Таким же образом, « внутри строки, ограниченной ", этого тоже не требует.
Инструкции SELECT, приведенные ниже, показывают как работают цитирование и экранировка:
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
liner |
+------+
Если вы хотите вставлять двоичные данные в столбец типа BLOB (об этом типе поговорим позже), следующие символы должны представляться в соответствии с управляющими последовательностями, экранирующими их:
- NUL (ASCII 0). Вы должны представить это как \0;
- \ (ASCII 92), backslash. Представьте это как \\;
- " (ASCII 39), одиночная кавычка. Представьте это как \";
- « (ASCII 34), двойная кавычка. Представьте это как \».