Операторы MySQL
Операторы позволяют выполнить определенные действия с данными. На- пример, математические операторы позволяют произвести арифметические вычисления. Рассмотрим операторы, доступные в MySQL.
П РИМ Е ЧАНИЕ
Выполнять SQL-команды мы будем в программе MySQL monitor. Для запус- ка программы в меню Пуск выбираем пункт Программы | MySQL | MySQL server 5.1 | MySQL Command Line Client. Откроется черное окошко с за-
просом ввести пароль. Вводим пароль, заданный при установке сервера MySQL. Если установка производилась по инструкциям из разд. 4.7, то па- роль "123456". В случае успешного входа отобразится приветствие серве- ра, и программа перейдет в режим ожидания команд. В командной строке набираем USE tests; для выбора базы данных.
6.7.1. Математические операторы
Математические операторы:
? + — сложение:
SELECT 8 + 5;
? - — вычитание:
SELECT 10 - 5;
? * — умножение:
SELECT 10 * 5;
? / — деление:
SELECT 10 / 5;
/* Выведет: 2.0000 */
? DIV — целочисленное деление:
SELECT 10 DIV 5;
/* Выведет: 2 */ SELECT 10 DIV 3;
/* Выведет: 3 */
? % — остаток от деления:
SELECT 10 % 2;
/* Выведет: 0 */ SELECT 9 % 2;
/* Выведет: 1 */
? MOD — остаток от деления:
SELECT 10 MOD 2;
/* Выведет: 0 */
Вместо операторов % и MOD можно использовать функцию MOD().
SELECT MOD(10, 2);
/* Выведет: 0 */
Следует отметить, что если один из операндов равен NULL, то результат опе- рации также будет равен NULL. В отличие от языков программирования деле- ние на ноль не приводит к генерации сообщения об ошибке. Результатом опе- рации деления на ноль является значение NULL.
Если необходимо сменить знак, то перед операндом следует указать знак
– (минус):
SELECT -(-5);
/* Выведет: 5 */
В качестве примера рассмотрим возможность подсчета переходов по реклам-
ной ссылке. Для этого создадим таблицу counter в базе данных tests:
CREATE TABLE `counter` (
`id_link` INT NOT NULL AUTO_INCREMENT,
`total` INT,
PRIMARY KEY (`id_link`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Затем добавим одну запись:
INSERT INTO `counter` VALUES (1, 0);
Для подсчета переходов в тексте ссылки укажем идентификатор в базе дан-
ных и URL-адрес:
<html>
<head>
<title>Подсчет переходов по ссылкам</title>
</head>
<body>
<a href="go.php?id=1&url=http://www.mail.ru/">Перейти</a>
</body>
</html>
Регистрация переходов производится в файле go.php. Исходный код файла приведен в листинге 6.1.
Листинг 6.1. Регистрация переходов по ссылке
<?php
if (!isset($_GET['id']) || !isset($_GET['url'])) die(‘Ошибка’);
$id = $_GET['id'];
if (preg_match(‘/^[0-9]+$/s’, $id) && $id != 0) {
if ($db = @mysql_connect("localhost", "root", "123456")) {
mysql_select_db("tests");
$query = ‘UPDATE `counter` SET `total` = `total` + 1 ‘;
$query .= ‘WHERE `id_link`=’ . $id;
@mysql_query($query);
mysql_close($db);
}
}
header(‘Location: ‘ . $_GET['url']);
?>
Использование оператора + позволяет произвести увеличение счетчика за один запрос. Иначе пришлось бы вначале получить значение из базы данных, затем увеличить его и только во втором запросе обновить значение в базе данных.
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)
Похожие посты:
- Получение больших наборов данных (0)
- Анализ большого набора данных (0)
- Пример: выявление тенденций (0)
- Создание таксономии запросов (0)
- Завершение углубленного анализа востребованности поисковых запросов (0)
- Изменение высоты строки (межстрочного интервала) в тексте (0)
- Изменение стиля маркеров списка или удаление маркеров (0)