Документация MySQL

11.07.2009

При использовании более ранней, чем 3.22.24, версии MySQL необходимо
вместо этого выражения использовать следующее:
.
8.4.3.86 Описание
Возвращает количество столбцов для последнего запроса в данном соединении.
Обычно эту функцию используют в случае, когда функция
(и, следовательно, нет ни одного указателя для
результирующего набора). В этом случае можно вызвать функцию
для определения, может ли функция
выдать непустой результат. Это дает возможность данной клиентской
программе выполнить соответствующее действие без уточнения, был ли данный
запрос командой вида
). Приведенный ниже
пример иллюстрирует, как это можно сделать.
See section ?
.
8.4.3.87 Возвращаемые значения
Беззнаковое целое число, представляющее количество полей в результирующем
наборе.
8.4.3.88 Ошибки
Нет.
8.4.3.89 Пример
MYSQL_RES *result;
unsigned int num_fields;
unsigned int num_rows;

if (mysql_query(&mysql,query_string))
{
// ошибка
}
else // запрос выполнен, обработка возвращенных им данных
{
result = mysql_store_result(&mysql);
if (result) // содержит строки
{
num_fields = mysql_num_fields(result);
// извлечение строк, затем вызов mysql_free_result(result)
}
else // mysql_store_result() не вернула ничего; может ли что-либо вернуть?
{
if(mysql_field_count(&mysql) == 0)
{
// запрос не возвращает данные
// (запрос не был вида SELECT)
num_rows = mysql_affected_rows(&mysql);
}
else // mysql_store_result() должна была вернуть данные
{
fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}
}
}
. В этом случае можно проверить, была
ли данная команда вида
, непосредственно по ошибке от
, а не делать логический вывод по величине функции
.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

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

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.

Документация MySQL

11.07.2009

(истина, TRUE),
(ложь, FALSE) или
. Эти функции работают как с числами, так и со строками. Строки при
необходимости автоматически преобразуются в числа, а числа - в строки (как
в Perl).
, то и результат сравнения будет
. Справедливо для всех операторов кроме
.
Если оба аргумента в операторе сравнения являются строками, то они
сравниваются как строки.
Если оба аргумента - целые числа, то они сравниваются как целые числа.
Шестнадцатеричные величины, если они не сравниваются с числом,
трактуются как строки с двоичными данными.
, а второй аргумент - константа, то константа перед
выполнением сравнения преобразуется к типу
. Это сделано для
лучшей совместимости с ODBC.
Во всех других случаях аргументы сравниваются как действительные числа
с плавающей точкой.
По умолчанию сравнение строк производится без учета регистра символов с
использованием текущего набора символов (по умолчанию ISO-8859-1 Latin1,
который, к тому же, прекрасно подходит для английского языка).
Ниже приведены примеры, иллюстрирующие преобразование строк в числа для
операторов сравнения:
mysql> SELECT 1 = 0;
-> 0
mysql> SELECT '0' = 0;
-> 1
mysql> SELECT '0.0' = 0;
-> 1
mysql> SELECT '0.01' = 0;
-> 0
mysql> SELECT '.01' = 0.01;
-> 1
!=
mysql> SELECT '.01' <> '0.01';
-> 1
mysql> SELECT .01 <> '0.01';
-> 0
mysql> SELECT 'zapp' <> 'zappp';
-> 1
mysql> SELECT 0.1 <= 2;
-> 1
mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
-> 1 1 0
Тест для определения, является величина равной
mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;
-> 0 0 1
mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
-> 1 1 0
Для того, чтобы MySQL хорошо работал с другими программами, обеспечивается
поддержка следующих дополнительных возможностей для функции
Можно найти последнюю вставленную строку, используя выражение:
.
See section
.
, используя выражение:
).
, то функция
,
в противном случае -
. Это эквивалентно выражению (
), в котором все аргументы представлены одним и тем же типом данных.
Способ выполнения сравнения определяется первым аргументом (
,
, а величины
являются константами, то последние
приводятся к тому же формату, что и столбец.
является независимым от регистра символов строковым
выражением, то производится сравнение строк без учета регистра.
является зависимым от регистра символов строковым
выражением, то производится сравнение строк с учетом регистра.
представляет собой целочисленное выражение, то выполняется
сравнение целых чисел.
Во всех остальных случаях производится сравнение аргументов как
действительных чисел с плавающей точкой.
.
expr IN (value,...)
, если выражение expr равно любой величине из списка
,
иначе -
. Если все величины - константы, то они оцениваются в
соответствии с типом выражения expr и сортируются. Поиск элемента в
этом случае производится методом логического поиска. Это означает, что
функция
является очень быстрой, если список значений
состоит
полностью из констант. Если expr является зависимым от регистра
строковым выражением, то сравнение строк производится с учетом
регистра:
mysql> SELECT 2 IN (0,3,5,'wefwf');
-> 0
mysql> SELECT 'wefwf' IN (0,3,5,'wefwf');
-> 1
expr NOT IN (value,...)
NOT (expr IN (value,...))
.
, то
, в противном случае -
!
Возвращает первый в списке элемент со значением, не равным
mysql> SELECT COALESCE(NULL,1);
-> 1
mysql> SELECT COALESCE(NULL,NULL,NULL);
-> NULL
INTERVAL(N,N1,N2,N3,...)
, если
, и
, если
, и так далее. Все аргументы
трактуются как целые числа. Для корректной работы этой функции необходимо
условие
N1 < N2 < N3 < ... < Nn
. Это обусловлено тем, что используется
логический поиск (очень быстрый):
mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);
-> 3
mysql> SELECT INTERVAL(10, 1, 10, 100, 1000);
-> 2
mysql> SELECT INTERVAL(22, 23, 30, 44, 200);
-> 0
=,
, ..., но не
), то конечный пробел
игнорируется.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

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

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.