Главная Новости

How to fix the formula error #NAME? in Microsoft® Excel 2013

Опубликовано: 13.10.2016

В предыдущей стратье мы разглядели функции обработки дат и времени. В сей раз мы пройдемся по части функций MySQL для работы со строчками. Чтоб получить полный их перечень, ознакомьтесь с официальной документацией.

Я рекомендую запустить phpMyAdmin (либо хоть какой другой инструмент для администрирования БД) после чтения этой статьи и без помощи других испытать поработать с некими функциями. В процессе этого вас могут посетить идеи о том, как использовать данные функции в процессе вашей работы, в будущих ваших проектах.


How to fix the formula error #NAME? in Microsoft® Excel 2013

Начнем с обычных функций. Вы уже, наверняка, сообразили по их заглавиям, что конкретно делают две эти функции.

UPPER() переводит строчку в верхний регистр, LOWER() — в нижний. Их довольно легко использовать — необходимо только передать в качестве параметра строчку либо поле таблицы, содержащее строчку, к примеру:
SELECT UPPER('Joe Bloggs')
Результатом выполнения будет строка JOE BLOGGS. Аналогично и с LOWER().

Таким макаром, если в вашем PHP-скрипте над полем, вернувшимся из базы данных, вы выполняете strtolower() или strtoupper(), вы сможете поступить проще и интегрировать изменение регистра строчки в сам запрос:
SELECT LOWER(user_name) AS user_name_lower FROM users WHERE user_id = 11

Это еще одна функция с довольно естественным названием. SUBSTRING() позволяет извлекать определенную часть строчки.

Функция воспринимает три параметра: строчку, которую вы желаете обработать, индекс первого знака извлекаемой подстроки и длину подстроки, которую вы желаете получить.

На многих веб-сайтах, в том числе с которыми мне приходилось работать, генерация анонсов записей осуществляется методом обрезания полного текста при помощи приблизительно такового кода:
$sql = "SELECT news_content FROM news WHERE news_id = 23";
$article = mysql_query($sql);
$articleRow = mysql_fetch_assoc($article);
$preview = substr($articleRow['news_content'], 0, 75);

Но я нахожу более элегантным решение с внедрением MySQL-функции, даже если это не уменьшит код:
$sql = "SELECT news_content, SUBSTRING(news_content, 1, 75) AS news_preview FROM news WHERE news_id = 23";
$article = mysql_query($sql);
$articleRow = mysql_fetch_assoc($article);
$preview = $articleRow['news_preview'];

Если вы привыкли использовать substr() в PHP, вам может показаться необычной одна деталь — в MySQL нумерация знаков строчки начинается с 1, на не с 0, как в PHP.

Вы сможете не указывать 3-ий параметр SUBSTRING() — в данном случае будут извлечены все знаки от исходной точки (обозначенной во 2-м параметре) до конца строчки.

Честно говоря, мне не приходилось использовать эту функцию в запросах при разработке веб-сайтов. Но она может быть полезной при обслуживании базы данных.

Если в нескольких записях на веб-сайте вкаралась ошибка либо опечатка, а ручное редактирование каждой записи может занять очень много времени, REPLACE()послужит аналогом функции «Отыскать и поменять» вашего возлюбленного редактора. Все, что вам необходимо, это сделать один запрос:
UPDATE table_name SET table_field = REPLACE(table_field, 'string to find', 'string to replace it with')

Напомню, что перед схожими манипуляциями стоит сделать запасную копию базы данных.

Функция CONCAT() может быть применена для объединения нескольких строк либо полей, содержащих строчки, в одну. Любая строчка передается в качестве параметра, при всем этом вы сможете передать столько строк, сколько вам необходимо.

Если, к примеру, в различных полях нашей таблицы хранятся имя, отчество и фамилия человека, и мы желали бы вывести их одной строчкой, мы можем выполнить последующий код:
$sql = "SELECT CONCAT(person_title, ' ', person_fname, ' ', person_sname) AS name FROM people";
$people = mysql_query($sql);
while($person = mysql_fetch_assoc($people)) {
echo $person['name'] . '
';
}

Это малость лучше использования старенького способа с малость запятанным PHP-кодом:
$sql = "SELECT person_title, person_fname, person_sname FROM people";
$people = mysql_query($sql);
while($person = mysql_fetch_assoc($people)) {
echo $person['person_title'] . ' ' . $person['person_fname'] . ' ' . $person['person_sname'] . '
';
}

Вы, наверняка, уже увидели, что в обоих случаях меж полями таблицы нам приходилось добавлять пробел, чтоб слова не сливались и на данные можно было просто глядеть.

К счастью, ребята из MySQL предоставили нам возможность обойти эту делему — вариацей CONCAT() является CONCAT_WS().

WS значит «с сепаратором» («with separator» — англ.). Работает CONCAT_WS() немного схоже с функцией PHP implode(). 1-ый переданный в функцию параметр служит типичным клеем, которым все строчки будут соединяться вместе, вот так:
$sql = "SELECT CONCAT_WS(' ', person_title, person_fname, person_sname) AS name FROM people";
$people = mysql_query($sql);
while($person = mysql_fetch_assoc($people)) {
echo $person['name'] . '
';
}

В итоге мы просто получаем подходящую строчку в одной переменной

Функция LIKE используется для сопоставления строк. По принципу использования она очень похожа на оператор «=», но она имеет очень принципиальное преимущество, когда нужно нечто большее, чем четкое совпадение — соответствие маске.

Маски, передаваемые в LIKE, могут содержать два особых знака: «%» соответствует нолю либо более всех знаков, «_» соответствует одному хоть какому символу.

К примеру, вы пишете ординарную поисковую машину для собственного веб-сайта и вы желаете, чтоб она находила все статьи, содержащие в заглавии запрос юзера. В данном случае вам необходимо написать запрос вроде этого:
SELECT * FROM articles WHERE article_title LIKE "%My Search Phrase%"

В итоге вы получите все ряды, содержащие где-либо в поле article_title фразу «My Search Phrase».

RLIKE очень похожа на LIKE, но она позволяет использовать постоянные выражения для более сложных масок, к примеру:
SELECT * FROM articles WHERE article_title RLIKE ".*My Search Phrase.*"

Этот SQL-запрос даст вам тот же итог, что и при использовании LIKE, но поскольку RLIKE позволяет использовать всю мощь постоянных выражений, с ним вы сможете сделать намного больше.

Я рекомендую ознакомиться с документацией MySQL по постоянным выражениям для получения дополнительной инфы и примеров, которые вы сможете использовать и в собственных запросах. В особенности рекомендую поглядеть описание маркеров [[:<:]] и [[:>:]]. Эти маркеры позволят повысить качество запросов в поисковике, ограничивая поиск по целому слову.

Функции MySQL для работы со строчками малость трудно рассматривать исходя из убеждений решения отдельных задач с их внедрением, так как метод их внедрения очень находится в зависимости от определенной трудности кодировки, с которой вы столкнулись. Все же, я надеюсь, что они будут полезны и сделают вашу жизнь малость проще.

3D стерео фильмы для 5D
rss