我有一个包含制造商和产品名称的表,我想要一个查询来查找给定制造商和产品名称的产品 ID 来搜索
SELECT product_id
FROM
`product`
WHERE
product_id <> ''
and lower(manufacturer) like '%ACME%'
and lower(product_name) like '%Anvil%'
我想知道是否可以在一个查询中以某种方式查询多个特定制造商和产品名称。例如,我想查找“ACME Anvil”和“DemoCO Dynamite”的产品 ID。
我可以做到这一点的最简单方法是类似
SELECT product_id
FROM
`product`
WHERE
product_id <> ''
and lower(manufacturer) like '%ACME%'
and lower(product_name) like '%Anvil%'
UNION ALL
SELECT product_id
FROM
`product`
WHERE
product_id <> ''
and lower(manufacturer) like '%DemoCO%'
and lower(product_name) like '%Dynamite%'
但我想知道是否有更优雅的解决方案,特别是当我可以查找 20 多个产品/公司组合时。请记住,每个组合都是独立的,因此我不想从查询中获得“ACME Dynamite”的结果
SQL Like 运算符可以与 OR 运算符一起使用。
SELECT product_id
FROM `product`
WHERE
product_id <> ''
and lower(manufacturer) like '%ACME%' OR lower(manufacturer) LIKE '%DemoCO%';
and lower(product_name) like '%Anvil%' OR lower(product_name) LIKE '%Dynamite%';