Sql 'like' 内条件 'exists'

Sql 'like' condition inside 'exists'

我有 2 Mysql 个表

  1. products 带有 varchar 列 equlik
  2. preferences 带有 varchar 列 equlik

我想要 select 产品中的所有内容,条件是偏好中至少有一行 preferences.equ 等于 products.equ products.lik 就像 %preferences.lik%。即 products.lik 包括 preferences.lik 作为子字符串。如何构建此查询?

您可以按照您描述的方式构建它:

select p.*
from products p
where exists (select 1
              from preferences pr
              where pr.equ = p.equ and
                    p.lik like concat('%', pr.lik, '%')
             );