ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

PHP的MySQL检查供应商是否有3低连续评级

2019-11-18 18:25:11  阅读:182  来源: 互联网

标签:vendor apache mysql php


在我的软件评级表中,我有4个字段.
id自动递增
vid供应商ID
评级日期
给实际数字评分

在过去的几个月中,我已经做了很多事情,但是这次我很困惑,我无法清楚地知道最好的方法.我要尝试做的是找出供应商是否具有3个低的“连续”评级.如果他们的最后三个评分是< 3然后我要标记它们. 我已经玩了几个小时了,所以我想我会问(不是要回答),但是对于某些路径方向只是为了推动我前进,我陷入了这里的盘旋. 我已经尝试了GROUP BY和几个ORDER BY,但是这些尝试都进行不了,所以我想知道这是否不是mysql的答案,而是php的答案.换句话说,也许我只需要拿走我到目前为止所拥有的东西,然后通过usort之类将东西移到php端,就可以做到这一点.

这是我到目前为止所做的,一开始我也确实选择了id,这是获得最后一次奉献的最好方法,但是后来我取得了一点突破,如果他们连续有3个id没关系,所以我从查询中删除了它.

  $sql = "SELECT `rvid`, `rating` FROM `vendor_ratings_archive` WHERE `rating` <= '3' ORDER BY `rvid` DESC";

给我这个

Array
(
[0] => Array
    (
        [rvid] => 7
        [rating] => 2
    )

[1] => Array
    (
        [rvid] => 5
        [rating] => 1
    )

[2] => Array
    (
        [rvid] => 5
        [rating] => 0
    )

[3] => Array
    (
        [rvid] => 5
        [rating] => 3
    )

)

这只是我在田间扔掉的样本,这里只有4行,现场直播时将有数行.但这基本上告诉我,这些是表中评级较低的供应商.那就是我陷入困境的地方.我只能在查询中进行一种排序,所以这就是为什么我认为我需要将此并移到php端才能完成.

我认为我首先需要用rvid用php对元素进行排序,然后查看连续三个元素是否是同一供应商(rvid).

希望有道理.我的大脑很疼

更新-这是所有使用*的表数据

Array
(
[0] => Array
    (
        [id] => 7
        [rvid] => 7
        [ratedate] => 2016-05-01
        [rating] => 2
    )

[1] => Array
    (
        [id] => 8
        [rvid] => 5
        [ratedate] => 2016-05-01
        [rating] => 1
    )

[2] => Array
    (
        [id] => 6
        [rvid] => 5
        [ratedate] => 2016-05-01
        [rating] => 0
    )

[3] => Array
    (
        [id] => 5
        [rvid] => 5
        [ratedate] => 2016-05-01
        [rating] => 3
    )

)  

解决方法:

这是您可以开始解决此问题的一种方法-完全使用SQL:

>获得供应商的最新评级. ORDER BY日期DESC,上限1.
>获得供应商倒数第二的评级. ORDER BY日期DESC,限制1,偏移1.

然后编写一个查询,对前两个表进行LEFT联接.您将拥有一个包含三列的数据集:

>供应商ID
>最新评分
>倒数第二个评分

然后,您可以编写一个表达式,表示“如果column1 <3,而column2< 3,则此新列为true” 您应该能够相对容易地将其扩展到三列.

标签:vendor,apache,mysql,php
来源: https://codeday.me/bug/20191118/2030301.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有