我想在mysql数据库中搜索包含一些供应商名称的列,并且它具有类似的值。 Bansbach GmbH (default)
,Bansbach Feinmechanik
和Bansbach xyzsomething
。我需要将结果作为一个数组得到,其中包含的结果包含完全等于Bansbach
的列,否则检查Bansbach和default。如何编写这样的mysql查询。
现在我尝试过这样的事情。[这里只包括我的where子句]
WHERE suppliername ='Bansbach'
我需要一些像
这样的东西 WHERE if(suppliername !='Bansbach' then (check it contains both bansbach and default)
答案 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%')