开发遇到要求符合多个条件其中一个条件的数据返回

这里最简单的就是前端把复选框的信息都一个一个组成队列发给咱们
然后咱们拆开来一个一个去请求,直到请求到所有需要的数据。
很明显这样无论是前端还是后端都很麻烦,那有没有简单点的方法呢!
有人会说使用like:
直接上图(没做任何处理先看看数据库里都是有什么):
在这里插入图片描述

这是现有数据:
这个时候书写语句:

SELECT affiliat_nation
from sys_product 
where 
affiliat_nation LIKE "12"

运行结果应该会把affiliatNation值为1或3的数据都返回出来
看结果
在这里插入图片描述
这样讲吧:
就是 **“affiliat_nation”的值中包含“206”**就算判断成功(%表示零个或是多个字符)
好呢明显跟咱们想象的不一样(复选框很明显会有多个条件,只需要满足一个条件咱们就显示)
在这里插入图片描述
这样做也不对:
在这里插入图片描述

所以这种方法是行不通的!
经过查阅mysql语法得:**locate(字符串1,字符串2)**这个函数
大概意思:返回字符串1在字符串2中第一次出现的位置,只要字符串2中包含字符串1,那么返回值必然大于0。
仔细读几遍你就会明白
在这里插入图片描述
语句:

SELECT
	affiliat_nation 
FROM
	sys_product 
WHERE
	LOCATE(
	affiliat_nation,
	"%2065 2069%")

OK了就是这个效果!
希望这篇博客可以帮到你,下一个bug见!

Logo

快速构建 Web 应用程序

更多推荐