从 mysql 中获取数据,其中列值包含两个字符串

Fetch datas from mysql where column value contains two strings

我想在 mysql 数据库中搜索包含一些供应商名称的列,它的值如下。 Bansbach GmbH (default)Bansbach FeinmechanikBansbach xyzsomething。我需要将结果作为数组获取,其中包含的结果的列完全等于 Bansbach,如果不是,则检查 Bansbach 和默认值。如何编写这样的 mysql 查询。

现在我已经尝试过这样的事情。[这里只包含我的 where 子句]

WHERE suppliername ='Bansbach'  

我需要像

这样的东西
 WHERE if(suppliername !='Bansbach' then (check it contains both bansbach and default)  

普通普通 SQL:

SELECT
  -- blah
FROM
  -- blah
WHERE
  suppliername = 'Bansbach'
  OR (
    suppliername LIKE '%Bansbach%'
    AND suppliername LIKE '%default%'
  )
;

编辑

为什么这是一回事?

  • OR 分支只会被采用,如果第一个条件失败,这将取代你 IF
  • "Containing both" 等同于 "contain one AND contain the other"

下面sql应该为您做一份工作:

SELECT
  suppliername
FROM
  [TABLE NAME]
WHERE
  suppliername = 'Bansbach' OR (suppliername LIKE '%Bansbach%' AND suppliername LIKE '%default%')