sqlmysql

how to use LIKE with column name


Normally LIKE statement is used to check the pattern like data.

example:

select * from table1 where name like 'ar%'

My problem is to use one column of table with LIKE statement.

example:

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

Query above results error . how to use one column data in like query?


Solution

  • You're close.

    The LIKE operator works with strings (CHAR, NVARCHAR, etc). so you need to concattenate the '%' symbol to the string...

    SQL Server:

    SELECT * FROM table1,table2 WHERE table1.x LIKE table2.y + '%'
    

    Use of LIKE, however, is often slower than other operations. It's useful, powerful, flexible, but has performance considerations. I'll leave those for another topic though :)

    I don't use MySQL, but this may work...

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