как я могу написать запрос sql, который находит строки, где один столбец является подстрокой другого столбца

Я хочу найти все строки в таблице, где один столбец является подстрокой другого столбца.

Другими словами, предположим, что у меня есть таблица (называемая людьми) с двумя столбцами: имя и фамилия, и я хочу найти всех людей, таких как «роб робиновиц» и «джилл баджиллион».

Есть ли способ сделать что-то вроде «выбрать * из людей, у которых фамилия похожа на %firstname%»? (Но то, что действительно работает).


person Hugh    schedule 25.11.2008    source источник
comment
Из любопытства, это ваш реальный вариант использования? Почему вы хотите это сделать?   -  person Vinko Vrsalovic    schedule 25.11.2008


Ответы (2)


ты был близок

select * from people where lastname like '%' + firstname + '%'

Альтернативный способ (может быть даже быстрее)

select * from people where charindex(firstname,lastname)>0
person Dmitry Khalatov    schedule 25.11.2008

Если вы используете MySQL, вы можете

SELECT * FROM people WHERE INSTR(lastname, firstname) <> 0
person kmkaplan    schedule 25.11.2008