通常LIKE语句用于检查模式,如数据。
前:
select * from table1 where name like 'ar%'
我的问题是使用LIKE语句的一列表。
例如:
select * from table1, table2 where table1.x is like table2.y%
查询上面的结果错误。如何在类似查询中使用一列数据?
答案 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 列值。