Вложенные запросы MySQL
Формулировка задачи:
Здравствуйте, у меня возникла проблема с вложенными запросами в MySQL,
а именно - есть у меня поле
Я добился их разделения таким способом :
Это отлично работает но
phone
(номер) из таблицыhouse_list
типаINT(11)
, я захотел разделить его пополам , то есть из 220156 получить 220 и 156 , и проверить их равенство (220 != 156). Но сделать это в одном запросе не получается.Не по теме:
A использовать CREATE VIEW каждый раз как то не хочется, желаю наконец разобраться с этой проблемой, которая меня уже довольно долго мучает
SELECT phone,SUBSTRING(phone,1,LENGTH(phone)/2) AS l, SUBSTRING(phone,LENGTH(phone)/2+1,LENGTH(phone)/2) AS r FROM house_list;
так
:SELECT phone,SUBSTRING(phone,1,LENGTH(phone)/2) AS l, SUBSTRING(phone,LENGTH(phone)/2+1,LENGTH(phone)/2) AS r FROM house_list WHERE l = r;
не работает
, прошу помочь мне , так как у меня есть пробелы в знаниях, а найти их самостоятельно я не могу. P.S. Прошу прощения за мой русский язык.Решение задачи: «Вложенные запросы MySQL»
textual
Листинг программы
SELECT x.phone FROM ( SELECT phone , SUBSTRING(phone,1,LENGTH(phone)/2) AS l , SUBSTRING(phone,LENGTH(phone)/2+1,LENGTH(phone)/2) AS r FROM house_list ) x WHERE x.l = x.r;
Объяснение кода листинга программы
В этом коде используется подзапрос в SQL (MySQL), который выполняется в два этапа:
- Внутренний запрос (подзапрос):
- Выбирает поле
phone
из таблицыhouse_list
. - Разбивает это поле на две части: первую половину (левую) в переменную
l
и вторую половину (правую) в переменнуюr
. - Результатом этого подзапроса является новая таблица, содержащая три столбца:
phone
,l
иr
.
- Выбирает поле
- Внешний запрос:
- Выбирает только столбец
phone
из результата внутреннего запроса. - Фильтрует результаты таким образом, чтобы остались только те строки, где значения в столбцах
l
иr
совпадают. - Результатом этого запроса будет таблица, содержащая только столбец
phone
и строки, где значения в столбцахl
иr
совпадают. Таким образом, этот запрос вернет список номеров телефонов из таблицыhouse_list
, где первая половина номера равна второй половине.
- Выбирает только столбец
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д