суббота, 18 ноября 2017 г.

MySQL. Урок 21. Функции даты и времени. YEAR(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND(), DATE_ADD(), NOW(). Полнотекстовый поиск. Операторы MATCH AGAINST. Режимы поиска NATURAL LANGUAGE MODE, IN BOOLEAN MODE.

 -- Функции даты и времени: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html



CREATE TABLE IF NOT EXISTS test_time (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL DEFAULT '',
date DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (id)
);

INSERT INTO test_time
VALUES
(NULL, 'Товар 1', '2013-01-04 12:33:12'),
(NULL, 'Товар 2', '2013-01-04 14:36:17'),
(NULL, 'Товар 3', '2013-01-04 18:06:40');
--
SELECT id, YEAR (date), MONTH (date), DAY (date), HOUR (date), MINUTE (date) FROM test_time;

-- ПРИБАВЛЯЕТ ДАТУ.
SELECT DATE_ADD('2013-01-01', INTERVAL 30 DAY);

-- Прибавим дату к сегодняшнему дню.
SELECT DATE_ADD(NOW(), INTERVAL 100 DAY);


-- ПОИСК.
-- Полнотекстовый индекс возможен только на движках MyISAM на CHAR, VARCHAR, TEXT.
DROP TABLE IF EXISTS full_text;

-- Создадим таблицу на MyISAM и включим в нее данные из БД cart таблицы products
CREATE TABLE IF NOT EXISTS full_text ENGINE MYISAM
SELECT * FROM cart.products;

SET NAMES 'cp866';
SELECT * FROM full_text LIMIT 1 \G

-- Создадим полноткстовой поиск по полям author, description
CREATE FULLTEXT INDEX ixFullText ON full_text(author, description);

-- Сделаем запрос.
-- Режим поиска: IN NATURAL LANGUAGE MODE
SELECT id, author, description
FROM full_text
WHERE MATCH (author, description)
AGAINST ('Пупкин' IN NATURAL LANGUAGE MODE);
-- Есть еще режим поиска IN BOOLEAN MODE.
-- Это поиск по неполным словам.
SELECT id, author
FROM full_text
WHERE MATCH (author)
AGAINST ('+Пуп*' IN BOOLEAN MODE);


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

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

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html