Я ищу в MySQL / MariaDB случаи, когда значение, передаваемое при сохранении, будет отличаться от значения, которое можно получить позже. Меня интересуют только поля с недвоичными строковыми типами данных, такими как VARCHAR и * TEXT .
Я хотел бы получить более полное представление о том, как можно доверять хранимой ценности. Это было бы особенно интересно для случаев, когда в выводе просто отсутствуют определенные символы (например, в примере с escape-символом ниже), поскольку это особенно опасно при проверке.
Итак, это сводится к: Можете ли вы создать строку ввода (и / или определить среду), в которой она не выводит <value>
во втором выражении?
INSERT INTO t SET v = <value>, id = 1; // success
SELECT v FROM t WHERE id = 1;
То, что я могу придумать:
- строки, содержащие экранирование (
\a
→ a
) - усекаются, если слишком длинные
- кодировка символов таблицы, не поддерживающей ввод
Если что-то не работает тихо, вероятно, это также зависит от того, насколько строго установлен режим SQL (как в последних двух примерах).
Заранее большое спасибо за ваш вклад!