Как использовать LIKE с именем столбца
Обычно оператор LIKE
используется для проверки шаблона как данных.
пример:
select * from table1 where name like 'ar%'
Моя проблема - использовать один столбец таблицы с оператором LIKE
.
Пример:
select * from table1, table2 where table1.x is like table2.y%
Запрос выше результатов ошибка. Как использовать данные одного столбца в запросе like
?
Ответы
Ответ 1
Ты рядом.
Оператор LIKE работает со строками (CHAR, NVARCHAR и т.д.). поэтому вам нужно добавить символ '%' в строку...
MS SQL Server:
SELECT * FROM table1,table2 WHERE table1.x LIKE table2.y + '%'
Использование LIKE, однако, часто медленнее, чем другие операции. Это полезно, мощно, гибко, но имеет соображения производительности. Я оставлю это для другой темы, хотя :)
EDIT:
Я не использую MySQL, но это может сработать...
SELECT * FROM table1,table2 WHERE table1.x LIKE CONCAT(table2.y, '%')
Ответ 2
SQL SERVER
WHERE ColumnName LIKE '%'+ColumnName+'%'
Ответ 3
...
WHERE table1.x LIKE table2.y + '%'
Ответ 4
declare @LkeVal as Varchar(100)
declare @LkeSelect Varchar(100)
Set @LkeSelect = (select top 1 <column> from <table> where <column> = 'value')
Set @LkeVal = '%' + @LkeSelect
select * from <table2> where <column2> like(''[email protected]+'');
Ответ 5
Пример базы данных ORACLE:
select *
from table1 t1, table2 t2
WHERE t1.a like ('%' || t2.b || '%')