Вложенные запросы MySQL

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, у меня возникла проблема с вложенными запросами в MySQL, а именно - есть у меня поле

phone

(номер) из таблицы

house_list

типа

INT(11)

, я захотел разделить его пополам , то есть из 220156 получить 220 и 156 , и проверить их равенство (220 != 156). Но сделать это в одном запросе не получается.

Не по теме:

A использовать CREATE VIEW каждый раз как то не хочется, желаю наконец разобраться с этой проблемой, которая меня уже довольно долго мучает

Я добился их разделения таким способом :
Листинг программы
  1. SELECT phone,SUBSTRING(phone,1,LENGTH(phone)/2) AS l,
  2. SUBSTRING(phone,LENGTH(phone)/2+1,LENGTH(phone)/2) AS r
  3. FROM house_list;
Это отлично работает но

так

:
Листинг программы
  1. SELECT phone,SUBSTRING(phone,1,LENGTH(phone)/2) AS l,
  2. SUBSTRING(phone,LENGTH(phone)/2+1,LENGTH(phone)/2) AS r
  3. FROM house_list WHERE l = r;

не работает

, прошу помочь мне , так как у меня есть пробелы в знаниях, а найти их самостоятельно я не могу. P.S. Прошу прощения за мой русский язык.

Решение задачи: «Вложенные запросы MySQL»

textual
Листинг программы
  1. SELECT x.phone FROM (
  2.   SELECT phone
  3.   , SUBSTRING(phone,1,LENGTH(phone)/2) AS l
  4.   , SUBSTRING(phone,LENGTH(phone)/2+1,LENGTH(phone)/2) AS r
  5.   FROM house_list
  6. ) x
  7. WHERE
  8.   x.l = x.r;

Объяснение кода листинга программы

В этом коде используется подзапрос в SQL (MySQL), который выполняется в два этапа:

  1. Внутренний запрос (подзапрос):
    • Выбирает поле phone из таблицы house_list.
    • Разбивает это поле на две части: первую половину (левую) в переменную l и вторую половину (правую) в переменную r.
    • Результатом этого подзапроса является новая таблица, содержащая три столбца: phone, l и r.
  2. Внешний запрос:
    • Выбирает только столбец phone из результата внутреннего запроса.
    • Фильтрует результаты таким образом, чтобы остались только те строки, где значения в столбцах l и r совпадают.
    • Результатом этого запроса будет таблица, содержащая только столбец phone и строки, где значения в столбцах l и r совпадают. Таким образом, этот запрос вернет список номеров телефонов из таблицы house_list, где первая половина номера равна второй половине.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут