猿问

MYSQL如何实现按条件去重

如上图的数据。

假设 art_title 为不希望重复的字段,参数 version 为9.0.2

我的where条件 是like %[9.0.2]% or %[9.0.x]% or art_apply_version is null
所以会选出3条数据。

但是我期望的情况下
version为9.0.2->选择出第三条数据
version为9.0.5->选择出第二条数据
version为8.0.0->选择出第一条数据

即 符合条件1,则不选出条件2的,符合条件2则不选择出条件3的

因为这个sql是选取出一个列表 所以没办法像选择单个数据一样先判断玩第一种情况的返回再去查找第二种情况。

或者如果sql层面不好实现的话。那php层面怎么处理这样的数据去重呢?

慕森卡
浏览 1839回答 2
2回答

慕娘9325324

从程序上来解决,分3种情况判断。

汪汪一只猫

在php层面就不是去重了,应该是按条件精确查找:参数8.0.0,找xxx_version为null的;参数9.0.2,先找xxx_version为9.0.2的,没有则找xxx_version为9.0.x的
随时随地看视频慕课网APP
我要回答