从 mysql 中获取数据,其中列值包含两个字符串
Fetch datas from mysql where column value contains two strings
我想在 mysql 数据库中搜索包含一些供应商名称的列,它的值如下。 Bansbach GmbH (default)
、Bansbach Feinmechanik
和 Bansbach 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%')
我想在 mysql 数据库中搜索包含一些供应商名称的列,它的值如下。 Bansbach GmbH (default)
、Bansbach Feinmechanik
和 Bansbach 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%')