mysql多个条件按优先级匹配要怎么写

sinat_37552373 2019-05-14 04:37:25
1.第一匹配条件
2.第二匹配条件
3.第三匹配条件
4.第四匹配条件
5.第五匹配条件

比如我要在一张表里查数据,按匹配条件优先级查出最适合的一条。假如用户满足了第一条件,再在这个基础上查找是否有满足第二条件的,以此类推。
不知道这个怎么写好,希望大家指导一下,谢谢
...全文
897 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小罗的小刘 2019-05-22
  • 打赏
  • 举报
回复
只能循环判断
qq_35715551 2019-05-15
  • 打赏
  • 举报
回复
干脆用php做判断得了
kang#kang 2019-05-14
  • 打赏
  • 举报
回复


WITH tmp as (
-- 查出符合每种条件组合的数量
	SELECT count(*) c1, 'c1' as type FROM table where condition = 1 
	UNION
	select count(*) c2, 'c2' as type FROM 
	(
		SELECT * FROM table where condition = 1 
	) t1 where t1.condition = 2
	UNION
	
	SELECT count(*) c3, 'c3' as type FROM 
	(
		SELECT count(*) c2 FROM 
		(
			SELECT * FROM table where condition = 1 
		) t1 where t1.condition = 2
	)t2 WHERE t2.condition = 3
)

SELECT * from (
	SELECT * FROM tmp 
	WHERE true AND 
	CASE type
	WHEN type='c1' && c1>0 THEN
		where xxxxx
	WHEN type='c2' && c2>0 THEN
		where xxxxx
END CASE;
)


太麻烦了 不行就一条一条的写吧 查出来符合1 的 然后再 查同时符合1 和2 的 直至查询中没有结果了 就返回上一次查的结果


-- 符合1
select * from table where condition = 1
-- 1 & 2 
select * from table where condition = 1 and condition = 2 

-- 类推
sinat_37552373 2019-05-14
  • 打赏
  • 举报
回复
如何后面的匹配条件都没有满足的 就拿上一个满足的数据

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧