powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Функии
3 сообщений из 3, страница 1 из 1
Функии
    #39287678
hasbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу понять как работает этот запрос:
Код: sql
1.
SELECT UPPER(names_list) from users;


Разве после SELECT не должно идти название поля? Не могли бы вы пошагово объяснить как будет выполняться этот запрос то есть что за чем? И почему когда я выполняю запрос вида:
Код: sql
1.
SELECT "Kate" FROM users;


Я получаю столбец Kate из трех записей со значением "Kate". Хотя в моей таблице 3х3 это значение фигурирует всего лишь один раз.

Я понимаю что в таком запросе:
Код: sql
1.
2.
3.
UPDATE users
SET
fnames_list = SUBSTRING_INDEX(names_list,' ',1);


Происходит циклический перебор всех записей в указанном полем, но ситуацию с SELECT не могу понять.
...
Рейтинг: 0 / 0
Функии
    #39287731
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hasbag,

после select могут быть не только названия полей. Константы, функции и даже другие подзапросы. У вас в запросе выполняется вызов штатной функции upper к каждому полю names_list в выборке.

Интерпретация "Kate" в mysql - зависит от текущего sql_mode. В режиме по-умолчанию с выключенными ANSI_QUOTES, это просто константа и не имеет к полям никакого отношения, просто строка. Вы получите столько строк "Kate", сколько у вас строк в выборке. С включенным ANSI_QUOTES - это будет имя поля.
...
Рейтинг: 0 / 0
Функии
    #39287877
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quo hasbag]Не могу понять как работает этот запрос:
Код: sql
1.
SELECT UPPER(names_list) from users;


Разве после SELECT не должно идти название поля?

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


Не могли бы вы пошагово объяснить как будет выполняться этот запрос то есть что за чем?


нет смысла объяснять работу запросов пошагово, потому что запросы не выполняются пошагово.

тут выбираться все записи из таблицы users, и для каждой выдается выражение

UPPER(names_list)

т. е. поле names list приведенное в верхний регистр.


И почему когда я выполняю запрос вида:
Код: sql
1.
SELECT "Kate" FROM users;


Я получаю столбец Kate из трех записей со значением "Kate".

потому что тут "Kate" - строковая константа.

Хотя в моей таблице 3х3 это значение фигурирует всего лишь один раз.


а это ты в запросе не ограничивал.



Я понимаю что в таком запросе:
Код: sql
1.
2.
3.
UPDATE users
SET
fnames_list = SUBSTRING_INDEX(names_list,' ',1);


Происходит циклический перебор всех записей в указанном полем, но ситуацию с SELECT не могу понять.[/quot]


в select в общем то же самое, только записи не меняются, а выводятся и не сохраняются.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Функии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]