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

时间:2015-01-09 06:28:21

标签: php mysql

我想在mysql数据库中搜索包含一些供应商名称的列,并且它具有类似的值。 Bansbach GmbH (default)Bansbach FeinmechanikBansbach xyzsomething。我需要将结果作为一个数组得到,其中包含的结果包含完全等于Bansbach的列,否则检查Bansbach和default。如何编写这样的mysql查询。

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

WHERE suppliername ='Bansbach'  

我需要一些像

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

2 个答案:

答案 0 :(得分:2)

普通常规SQL:

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

修改

为什么这是一回事?

  • OR分支只会被采用,如果第一个条件失败,这将取代IF
  • “包含两者”与“包含一个并包含其他”
  • 相同

答案 1 :(得分:0)

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

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