如何使用列名称LIKE

时间:2009-09-09 10:08:59

标签: sql mysql

通常LIKE语句用于检查模式,如数据。

前:

select * from table1 where name like 'ar%'

我的问题是使用LIKE语句的一列表。

例如:

select * from table1, table2 where table1.x is like table2.y%

查询上面的结果错误。如何在类似查询中使用一列数据?

7 个答案:

答案 0 :(得分:57)

你很亲密。

LIKE运算符使用字符串(CHAR,NVARCHAR等)。所以你需要将'%'符号连接到字符串......

MySQL服务器:

SELECT * FROM table1,table2 WHERE table1.x LIKE CONCAT(table2.y, '%')

然而,使用LIKE通常比其他操作慢。它有用,强大,灵活,但具有性能考虑因素。我会把这些留给另一个话题但是:)

答案 1 :(得分:28)

SQL SERVER

 WHERE ColumnName LIKE '%'+ColumnName+'%'

答案 2 :(得分:4)

...
WHERE table1.x LIKE table2.y + '%'

答案 3 :(得分:3)

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(''+@LkeVal+'');

答案 4 :(得分:2)

ORACLE DATABASE示例:

select * 
from table1 t1, table2 t2
WHERE t1.a like ('%' || t2.b || '%')

答案 5 :(得分:0)

对于SQLLite,您需要连接字符串

msbuild PCLAppConfig.sln /verbosity:normal /t:Rebuild /p:Configuration=Release

答案 6 :(得分:0)

对于您使用的 MySql,如下所示,这对我有用

SELECT * FROM table1, table2 WHERE table1.x LIKE (table2.y);

它需要 table2 的 y 列值。