Приднестровская поддержка XOOPS
Стандартные тригонометрические функции (аргументы должны задаваться в радианах):
□ SIN() — синус;
□ COS() — косинус;
□ TAN() — тангенс;
□ COT() — котангенс.
Обратные тригонометрические функции (возвращают значение в радианах):
□ ASIN() — арксинус;
□ ACOS() — арккосинус;
□ ATAN() — арктангенс.
Округление чисел:
□ CEILING() — значение, округленное до ближайшего большего целого:
SELECT CEILING(4.3);
/* Выведет: 5 */
□ CEIL() — значение, округленное до ближайшего большего целого:
SELECT CEIL(4.3);
/* Выведет: 5 */
□ FLOOR() — значение, округленное до ближайшего меньшего целого:
SELECT FLOOR(4.6);
/* Выведет: 4 */
□ ROUND() — значение, округленное до ближайшего меньшего целого для чисел с дробной частью меньше 0.5, или значение, округленное до ближайшего большего целого для чисел с дробной частью больше 0.5. Если
дробная часть числа равна 0.5, то округление зависит от версии MySQL.
Начиная с версии 5.0.3, округление производится в большую сторону:
SELECT ROUND(4.49);
/* Выведет: 4 */
SELECT ROUND(4.5);
/* В зависимости от версии MySQL, выведет 4 или 5. */
SELECT ROUND(4.501);
/* Выведет: 5 */
SELECT ROUND(4.51);
/* Выведет: 5 */
□ TRUNCATE(X, Y) возвращает дробное число X с Y количеством знаков после запятой. Если в качестве значения аргумента Y передать значение 0, то функция вернет число, округленное до меньшего целого:
SELECT TRUNCATE(4.55, 0);
/* Выведет: 4 */
SELECT TRUNCATE(4.55, 1);
/* Выведет: 4.5 */
SELECT TRUNCATE(4.55, 3);
/* Выведет: 4.550 */
Функции для преобразования чисел:
□ CONV(<Число>, <Исходная система>, <Нужная система>) преобразует число из одной системы счисления в другую:
SELECT CONV(255, 10, 16);
/* Выведет: FF */
SELECT CONV('FF', 16, 10);
/* Выведет: 255 */
□ BIN(<Число>) преобразует число из десятичной системы счисления в двоичную:
SELECT BIN(17);
/* Выведет: 10001 */
□ HEX() возвращает значение аргумента в виде шестнадцатеричного числа:
SELECT HEX(255);
/* Выведет: FF */
□ OCT(<Число>) преобразует число из десятичной системы счисления в восьмеричную:
SELECT OCT(10);
/* Выведет: 12 */
Прочие функции:
□ ABS() — абсолютное значение:
SELECT ABS(-4.55);
/* Выведет: 4.55 */
□ EXP() — экспонента;
□ LOG(X) — натуральный логарифм;
□ LOG2(X) — логарифм числа по основанию 2:
SELECT LOG2(128);
/* Выведет: 7 */
□ LOG10(X) — логарифм числа по основанию 10:
SELECT LOG10(100);
/* Выведет: 2 */
□ LOG(<Основание>, X) — логарифм числа X по основанию <Основание>:
SELECT LOG(2, 128);
/* Выведет: 7 */
SELECT LOG(10, 100);
/* Выведет: 2 */
□ POW(<Число>, <Степень>) возводит <Число> в <Степень>:
SELECT POW(5, 2);
/* Выведет: 25 */
□ SQRT() извлекает квадратный корень:
SELECT SQRT(25);
/* Выведет: 5 */
□ PI() возвращает число π:
SELECT PI();
/* Выведет: 3.141593 */
□ MOD(X, Y) определяет остаток от деления X на Y:
SELECT MOD(10, 2);
/* Выведет: 0 */
□ DEGREES() преобразует значение угла из радиан в градусы:
SELECT DEGREES(PI());
/* Выведет: 180 */
□ RADIANS() преобразует значение угла из градусов в радианы:
SELECT RADIANS(180);
/* Выведет 3.141592653589793 */
□ SIGN() возвращает -1, если число отрицательное, 1, если число положи-
тельное, и 0, если число равно нулю:
SELECT SIGN(-80);
/* Выведет: -1 */
SELECT SIGN(80);
/* Выведет: 1 */
□ LEAST() служит для определения минимального значения из списка:
SELECT LEAST(2, 1, 3);
/* Выведет: 1 */
□ GREATEST() позволяет определить максимальное значение из списка:
SELECT GREATEST(2, 1, 3);
/* Выведет: 3 */
□ FORMAT(<Число>, <Количество знаков после запятой>) форматирует число в строку с заданным количеством знаков после запятой. Позиция запятой отмечается точкой, а каждые три разряда отделяются запятой (это американский стандарт записи чисел):
SELECT FORMAT(56873.8732, 2);
/* Выведет: 56,873.87 */
□ RAND() возвращает случайное число в диапазоне от 0 до 1. Если в функцию передать параметр, то это настроит генератор на новую последовательность. Следует учитывать, что при передаче одного и того же параметра функция выдает одну и ту же последовательность:
SELECT RAND();
/* Выведет: 0.35286363153985106 */
SELECT RAND();
/* Выведет: 0.7805252687824195 */
SELECT RAND(10);
/* Выведет: 0.6570515219653505 */
SELECT RAND(10);
/* Выведет: 0.6570515219653505 */
В качестве примера рассмотрим вывод записи из базы данных случайным образом. Предположим, что наш сайт — развлекательный портал, и в базе данных есть таблица, заполненная анекдотами. При каждом запросе страницы мы будем выводить один анекдот случайным образом. Для этого в базе данных tests создадим таблицу anecdotes:
SET NAMES cp866;
CREATE TABLE `anecdotes` (
`id` INT NOT NULL AUTO_INCREMENT,
`anecdote` TEXT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Затем добавим несколько записей:
INSERT INTO `anecdotes` VALUES (NULL, 'Анекдот 1');
INSERT INTO `anecdotes` VALUES (NULL, 'Анекдот 2');
INSERT INTO `anecdotes` VALUES (NULL, 'Анекдот 3');
INSERT INTO `anecdotes` VALUES (NULL, 'Анекдот 4');
INSERT INTO `anecdotes` VALUES (NULL, 'Анекдот 5');
Исходный код для вывода анекдота случайным образом приведен в листинге 3.
Листинг 3. Вывод анекдота случайным образом
<?php
if ($db = @mysql_connect("localhost", "root", "123456")) {
mysql_select_db('tests');
mysql_query("SET NAMES cp1251");
$query = 'SELECT * FROM `anecdotes` ORDER BY RAND() LIMIT 1';
$res = mysql_query($query);
if (mysql_num_rows($res) == 1) {
echo mysql_result($res, 0, 'anecdote');
}
mysql_close($db);
}
?>
Отправитель | Нити |
---|
6 пользователь(ей) активно (4 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 6 далее... |