Поиск одного поля в другом - MySQL

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

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

Всем привет, имеется таблица. В ней есть поля: name, fio, pin Есть еще одна таблица: message, value, pin В 'pin' первой таблицы хранится число 312, в 'pin' второй таблицы хранится число "Это 312?". Необходимо произвести выборку из двух таблиц, если число "312" из первой присутствует в поле "pin" второй таблицы (а оно присутствует - "Это 312?"", то вывести эти строки. Делаю так:
SELECT блаблабла FROM `table1` LEFT JOIN `table2` ON concat(`table2`.`pin`) LIKE '%`table1`.`pin`%' WHERE 1
Он выводит постоянно NULL.

Решение задачи: «Поиск одного поля в другом»

textual
Листинг программы
ON INSTR(`table2`.`pin`, `table1`.`pin`) > 0

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

  1. Код выполняет сравнение строк table2.pin и table1.pin с помощью функции INSTR().
  2. Функция INSTR() возвращает позицию первого вхождения подстроки в строку. Если подстрока не найдена, функция возвращает 0.
  3. Условие > 0 означает, что будет выполнено сравнение, только если позиция подстроки больше 0, то есть подстрока действительно найдена в строке.
  4. Результатом выполнения условия будет булево значение TRUE, если условие выполняется, и FALSE в противном случае.
  5. В данном контексте, если условие выполняется, это означает, что поле table2.pin содержит значение, которое присутствует в поле table1.pin.
  6. Это может быть полезно, например, для проверки уникальности значений в поле table1.pin или для поиска конкретных значений в поле table2.pin.

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

8   голосов , оценка 4.375 из 5
Похожие ответы