Поиск одного поля в другом - MySQL
Формулировка задачи:
Всем привет, имеется таблица. В ней есть поля:
name, fio, pin
Есть еще одна таблица: message, value, pin
В 'pin' первой таблицы хранится число 312, в 'pin' второй таблицы хранится число "Это 312?".
Необходимо произвести выборку из двух таблиц, если число "312" из первой присутствует в поле "pin" второй таблицы (а оно присутствует - "Это 312?"", то вывести эти строки.
Делаю так:
Он выводит постоянно NULL.
SELECT блаблабла FROM `table1` LEFT JOIN `table2` ON concat(`table2`.`pin`) LIKE '%`table1`.`pin`%' WHERE 1
Решение задачи: «Поиск одного поля в другом»
textual
Листинг программы
ON INSTR(`table2`.`pin`, `table1`.`pin`) > 0
Объяснение кода листинга программы
- Код выполняет сравнение строк
table2.pin
иtable1.pin
с помощью функцииINSTR()
. - Функция
INSTR()
возвращает позицию первого вхождения подстроки в строку. Если подстрока не найдена, функция возвращает 0. - Условие
> 0
означает, что будет выполнено сравнение, только если позиция подстроки больше 0, то есть подстрока действительно найдена в строке. - Результатом выполнения условия будет булево значение
TRUE
, если условие выполняется, иFALSE
в противном случае. - В данном контексте, если условие выполняется, это означает, что поле
table2.pin
содержит значение, которое присутствует в полеtable1.pin
. - Это может быть полезно, например, для проверки уникальности значений в поле
table1.pin
или для поиска конкретных значений в полеtable2.pin
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д