我试图将基于MySQL查询的一组唯一数据输出到页面。最终结果应包括一家药房和相关价格。这是查询和while循环创建的数组的示例:
Array (
[0] => Array (
[Copay_Amount] => 18.37
[Pharmacy_Name] => CVS PHARMACY 04286
)
[1] => Array (
[Copay_Amount] => 27.54
[Pharmacy_Name] => HEB PHARMACY 662
)
[2] => Array (
[Copay_Amount] => 22.46
[Pharmacy_Name] => WALMART PHARMACY 10-4194 104194
)
[3] => Array (
[Copay_Amount] => 9.77
[Pharmacy_Name] => PUBLIX PHARMACY 0050
)
[4] => Array (
[Copay_Amount] => 18.37
[Pharmacy_Name] => CVS PHARMACY 06961
)
[5] => Array (
[Copay_Amount] => 12.52
[Pharmacy_Name] => KROGER PHARMACY 24660
)
[6] => Array (
[Copay_Amount] => 22.46
[Pharmacy_Name] => WALMART PHARMACY 10-1187 101187
)
这将产生以下结果
<table class="table table-striped .table-responsive h3">
<tbody>
<tr>
<td>CVS</td>
<td>$18.37</td>
</tr>
<tr>
<td>HEB</td>
<td>$27.54</td>
</tr>
<tr>
<td>WALMART</td>
<td>$22.46</td>
</tr>
<tr>
<td>PUBLIX</td>
<td>$9.77</td>
</tr>
<tr>
<td>CVS</td>
<td>$18.37</td>
</tr>
<tr>
<td>KROGER</td>
<td>$12.52</td>
</tr>
<tr>
<td>WALMART</td>
<td>$22.46</td>
</tr>
<tr>
<td>PUBLIX</td>
<td>$9.77</td>
</tr>
<tr>
<td>PLAQUEMINES</td>
<td>$12.35</td>
</tr>
<tr>
<td>BARTELL DRUGS</td>
<td>$12.17</td>
</tr>
<tr>
<td>BROOKSHIRES</td>
<td>$12.68</td>
</tr>
<tr>
<td>KROGER </td>
<td>$12.52</td>
</tr>
<tr>
<td>WALMART</td>
<td>$22.46</td>
</tbody>
</table>
我在while循环中清除了药店ID,如下所示:
$cashprice = round($row['Copay_Amount'],2);
$pharmacy = trim($row['Pharmacy_Name']);
$pharmacy = substr($pharmacy, 0, strpos($pharmacy, "#"));
$pharmacy = str_replace('DISCOUNT',"",$pharmacy);
$pharmacy = str_replace('PHARMACY',"",$pharmacy);
$pharmacy = preg_replace('/[-#()0-9]+/', '', $pharmacy);
我正在尝试从表格中删除重复项,在这种情况下,是从CVS,沃尔玛和Publix中删除,因此它仅显示了一个唯一的药房和价格集。
我尝试使用GROUP BY在MySQL级别上执行此操作,但为此,我需要另一个表,该表将长药房名称与较短的药房名称相匹配,并且查询时间不可接受。我还刚刚对array_unique进行了实验,如下面的部分所示:
$items = array_unique($r->fetch_assoc(), SORT_NUMERIC);
但这会删除所有CVS项,然后将其重复四次(上面的数组只是部分... MySQL查询集LIMIT 0,100)。
希望找到可怜我的人以及我独特的PHP方式来帮助我!谢谢!
最佳答案
我最终使用了蛮力法。备份数据库后,我对主要药房进行了更新。一旦您进入了前十名,就可以覆盖全部80%左右,这已经足够了。有危险吗你打赌推荐的?嗯,但是我先在本地进行了很多测试,然后在生产数据库上进行了测试。
我现在正在研究如何规范化数据库,以便将来可以根据需要添加这样的字段。在同一数据库中具有short_pharmacy字段会极大地加快查询速度,更不用说带回使用GROUP BY的好处。
谢谢!