MySQL join query using like?

前端 未结 3 755
情深已故
情深已故 2020-11-29 07:27

I have been trying to get this working for quite a while now but it just doesn\'t seem to work, maybe it is is not even possible, what i am wanting to do is to perform a MyS

相关标签:
3条回答
  • 2020-11-29 07:34

    Try

    SELECT *
    FROM Table1
    INNER JOIN Table2 ON Table1.col LIKE CONCAT('%', Table2.col, '%')
    

    MySQL does string concatenation differently from other databases, so in case you want to port your app, you need to have an alternate version where || is used as concatenation operator, as mentioned by Michael in another answer. This operator doesn't work in MySQL though, since it means or.

    0 讨论(0)
  • 2020-11-29 07:49
    SELECT p.products_id, pd.products_name, p.products_model
    FROM products_description pd
    JOIN products p ON p.products_id = pd.products_id
    WHERE pd.products_name LIKE CONCAT( '%', p.products_model, '%' )
    LIMIT 0 , 100
    

    First off you have to restrict your request by (p.products_id = pd.products_id) and LIMIT. And look what time it took. After that you can go and make comparison with (WHERE). If you gonna compare directly within JOIN you will put down your db if there are at list 20 thousands items. Beware.)

    0 讨论(0)
  • 2020-11-29 07:52

    How about this instead:

    SELECT * FROM Table1, Table2 WHERE Table1.col LIKE '%'+Table2.col+'%';
    

    Since you're selecting everything from both tables anyway, this would probably get you there.

    0 讨论(0)
提交回复
热议问题