Страницы

Поиск по вопросам

среда, 10 июля 2019 г.

Символ $ в MySQL

Что делает символ $ в MySQL, или как он работает? Например, я могу успешно вставить в поле таблицы значение
$UNIX_TIMESTAMP(archive_date) * 1000
а когда пытаюсь вставить это же выражение без символа $,
UNIX_TIMESTAMP(archive_date) * 1000
получаю ошибку:
Unknown column 'archive_date' in 'field list'
Получается, этот символ экранирует функции, или у него какое-то другое значение?
UPD
То, что "я могу успешно вставить в поле таблицы значение" - это не гипотетическая возможность, у меня на самом деле проходит эта вставка:


Ответ

Нет, не можете и вообще непонятно с чего у вас выполняется первая строчка, когда во втором случае бьет ошибку, что отсутствует поле.
Этот символ ничего не делает непосредственно в MySQL и у него нет никакого назначения.
При попытке вызвать
SELECT $UNIX_TIMESTAMP(archive_date) * 1000 FROM my_table
Вы вероятно получите ошибку
FUNCTION api.$UNIX_TIMESTAMP does not exist
И туже самую ошибку вы получите, если будете делать INSERT VALUES и если у вас выполняется $UNIX_TIMESTAMP, значит скорее всего у Вас есть самонаписанная функция с таким названием.
Символ доллара можно использовать например в REGEXP. Для экранирования переменных используются backslash.
UPD:
Судя по последнему скриншоту, вы строку вставляете в базу, а не функцию.
INSERT INTO table VALUES ("$UNIX_TIMESTAMP(f2312)*1000")
и
("$MARS_TIMESTAMP(go)*onemillion")
конечно будет работать, это же строка. А вот без кавычек, ничего не вставиться.

Комментариев нет:

Отправить комментарий