Последнее обновление:
November 20, 2017

Есть мысль... Жми, напиши!
MySQL и другие БД

  • Рубрик нет

Деревья в MySQL (подчинение записей)

Данные хранятся в одной таблице, каждая ячейка ссылается на родительскую. Таким образом формируется все дерево.
Пример таблички:
[cce lang=»mysql»] CREATE TABLE catalog(
id INT NOT NULL PRIMARY,
pid INT NOT NULL,
someData text NOT NULL)[/cc]
Используем хранимую процедуру и временную таблицу
[cc lang=»mysql»]DELIMITER $$
DROP PROCEDURE IF EXISTS `getIndexToTmpTable`$$
/**
main_id — идентификатор корня или метка поиска
search_id — идентификатор для начала поиска
zlevel — максимальный уровень […]

Views :

746

Вывести данныке в файл одной коммандой php

file_put_contents(«filename»,»string»);
Доступно от 5 версии пхп.

Views :

752

REGEXP в MySQL

SELECT * FROM prices where tkey REGEXP ‘^toy’;
Вернет все записи где текст в колонке tkey начинается с букв “toy”.
SELECT * FROM prices where tkey  REGEXP ‘[[:digit:]]’;
Вернет все записи где  в колонке tkey только цифры.
^ — означает начало слова
$ — конец
. — Соответствие любому символу (включая перевод строки).
a* — Соответствие любой последовательности из нуля или более […]

Views :

2202

Длина текста в поле mysql

[ratings]
SELECT word FROM tgameworld where length(word) = 25
В этом запросе будут показывать строки где длина не первышает 25 символов.

Views :

1160

Получить новое за день, неделю, месяц из MySQL

[ratings]
В таблице есть поле created где ввиде timestamp указана дата публикации статьи. С помошью запроса можно получить
статьи за день:
SELECT nid, title FROM node n where FROM_UNIXTIME(created, ‘%Y-%m-%d’) = CURRENT_DATE();
за неделю:
SELECT nid, title FROM node n where FROM_UNIXTIME(created, ‘%Y-%m-%d’) > Date_sub(CURRENT_DATE(), INTERVAL 1 WEEK );
за месяц:
SELECT nid, title FROM node n where FROM_UNIXTIME(created, ‘%Y-%m-%d’) > Date_sub(CURRENT_DATE(), […]

Views :

1116

Проверка на существование записи, или COUNT против EXISTS

[ratings]
Недавно потребовалось оптимизировать один проект. Поначалу работал неплохо, но производительность уменьшалась прямопропорционально*2 колву использования.
Первым стал падать мускул сервак, решено было начать с оптимизации запросов к базе.
Начну, пожалуй, с проверки существования записи.
Один из способов это дать запрос с использование Count
Select count(id) from some_table where ….
Другой использовать функцию Exists
Select exists(select * form some_table where ….)
на первый взгляд […]

Views :

1360