Рубрика: Базы данных

  • MySQL. Как сделать дамп и сразу импортировать его на удаленный сервер?

    Очень редко — даже может быть один раз в жизни 🙂 — бывает необходимость сделать бекап и тут же его импортировать. Т.е. не делать файл выгрузки, который после будет импортирован. Подобная ситуация может возникнуть при работе с критично большими объемами БД или ограниченном месте на сервере, которое не позволяет сделать бекап. Причин может быть много.…

  • MySQL. Оператор CAST. Преобразование типов.

    Часто простые задачи вызывают много проблем. Например, если Вам надо вывести среднюю стоимость товаров с БД строкой — «Средняя цена — …..». Здесь мы получим ошибку — т.к. следует использовать приведение (преобразование) типов. Итак, простой интуитивный запрос выглядит так: SELECT ‘Средняя цена = ‘+AVG(price) FROM products Но тут мы, как раз, и столкнемся с ошибкой.…

  • MySQL. Выборка записей за сегодня-вчера/неделю/месяц

    Выборка данных за определенный период очень частая задача, которая решается крайне просто. Среди множества вариантов решения в сети меня лично прильщает или использование INTERVAL или применение следующих методов. За сегодня SELECT * FROM TABLE WHERE tc_date >= CURDATE() За вчера SELECT * FROM TABLE WHERE tc_date >= (CURDATE()-1) AND tc_date < CURDATE() За неделю SELECT…

  • MySQL. Использование REPLACE

    Работа со строками в MySQL продумана достаточно хорошо и имеет ряд очень полезных функций. Одной из таких функций в является функция REPLACE, о которой пойдет речь ниже. Итак, приведу простой пример, с которого все станет на места. UPDATE `some_table` SET `some_field`= REPLACE(`some_field`, ‘..’, ‘. . .’); Думаю тут все передльно ясно. Мы обновляем все поля,…

  • MySQL. Как выполнить множественный UPDATE?

    Множественный запрос очень часто ускоряет выполнение запросов, если Вам следует выполнить много попыток обновление полей таблицы. Мы экономим ресурсы, за счет одного большого запроса, а не множества маленьких. Пример подобного вопроса приведен ниже: UPDATE `test` SET `price` = CASE WHEN `id` = 1 THEN 11 WHEN `id` = 2 THEN 22 ELSE `price` END, `title`…

  • Php. PDO. Как узнать количество обновленных записей?

    При работе с PDO часто возникает необходимость узнать, сколько же записей было затронуто при выполнении последнего запроса. Получить эту информацию можно при помощи метода rowCount(). Рассмотрим простейший пример: $pdo = new PDO($dsn, $username, $password); $query = «UPDATE some_tables SET updated = NOW() WHERE id = ?»; $res = $pdo->prepare($query); $res->execute( array( $id ) ); echo…

  • Ubuntu. Установка и настройка PostgreSQL.

    Рассмотрим пример установки сервера PostgreSQL в Ubuntu и его первичной настройки для доступа по локальной сети. Итак , все предельно просто — следуйте инструкциям ниже. Устанавливаем сервер: sudo apt-get install postgresql Правим конфиги в /etc/postgresql/9.3/main/postgresql.conf Находим строку: #listen_addresses = ‘localhost’ Правим ее на: listen_addresses = ‘*’ Т.е. убираем комментарий и ставим * вместо localhost. Продолжаем…

  • MySQL. Как вывести фамилию и инициалы пользователя?

    Очень удобно выводить инициалы пользователя вместе с его фамилией. Информативность повышается, а места занимается не много. При правильной структуре БД — имя, фамилия и отчество должны храниться в разных полях — поэтому следующий пример учитывает именно эту ситуацию. Итак, запрос для получения фамилии и первой буквы имени и отчества в разных полях: SELECT last_name, LEFT(first_name,1),…

  • MySQL. Обрезка данных при запросе с GROUP_CONCAT

    Встретился со странным поведением — при запросе к MySQL с функцией GROUP_CONCAT, которая возвращала список всех телефонов за период времени данные хаотично обрезались. Т.е. строка приходила не полностью. Покопавшись, нашел и причину и решение. Надо просто исправить в my.cnf: group_concat_max_len=4096 … или выполнить запрос: SET GLOBAL group_concat_max_len=1024 * 4 Так или иначе мы устанавливаем предельную…

  • MySQL. Список форматов для функции DATE_FORMAT.

    С функцией DATE_FORMAT в MySQL работали все. Но держать в голове все ее форматы проблематично — поэтому предлагаю сохранить в закладки данную страничку 🙂 [table] %M~Month name (January..December)~Имя месяца на английском языке %W~Weekday name (Sunday..Saturday)~День недели на английском %D~Day of the month with English suffix (1st, 2nd, 3rd, etc.)~День месяца на английском %Y~Year, numeric, 4…