仅显示列中的第一个数据

时间:2016-08-11 05:41:13

标签: php mysql

我在表XYZ中有一个名为bl_year的列,在bl_year列数据中存储如下:

June 2016
June 2016
June 2016
July 2016
August 2016
August 2016
August 2016
August 2016

当我检索数据时,它给出了如上所示的完整列表,但我想只显示该月和年EX的1行:

June 2016
July 2016
August 2016

我希望你能理解,我使用了LIMIT,但只显示了一个,我需要检索

June 2016
July 2016
August 2016

谢谢,

Edit :
<div class="text-box">
                <h1>Blog Archive</h1>
                <?php 
                    $query1 = "SELECT es_id, bl_year, bl_created_by FROM blog WHERE bl_status = 'Approved' ORDER BY bl_year DESC";
                    $result1 = mysql_query($query1) or die('Query failed: ' . mysql_error());
                            while ($row1 = mysql_fetch_assoc($result1)) {

                            $bl_year = $row1['bl_year'];

                ?>
                <ul>
                    <li><?=$bl_year;?></li>
                </ul>
                <? } ?>
            </div> 

7 个答案:

答案 0 :(得分:0)

我认为你需要 GROUP BY

SELECT es_id, bl_year, bl_created_by FROM blog WHERE bl_status = 'Approved'
 GROUP BY es_id, bl_year, bl_created_by ORDER BY bl_year DESC"

简单解释,GROUP BY通常与聚合函数合作,如count():

SELECT COUNT(es_id), bl_year FROM blog GROUP BY bl_year

这可以计算同一个bl_year中的博客总数

您需要在GROUP BY子句中同时包含 es_id bl_created_by 列,因为他们不使用聚合函数,如果您不这样做,它无法分辨这些列中的值,它们可能不同。

或与 GROUP_CONCAT

一起使用的其他礼物
SELECT GROUP_CONCAT(es_id), bl_year FROM blog WHERE bl_status = 'Approved'
GROUP BY es_id, bl_year ORDER BY bl_year DESC"

这将得到像

的结果
 es_ids    |  bl_year
----------------------------
 24,25,26  |  July 2016
----------------------------
 21,22,23  |  June 2016

答案 1 :(得分:0)

在SQL中,您可以使用:

SELECT DISTINCT columns
FROM table_name
WHERE where_conditions
DISTINCT can Removes duplicate values

实施例:     你可以我们SELECT DISTINCT bl_year               FROM table_name WHERE where_conditions

答案 2 :(得分:0)

DISTINCT keyword可用于仅返回不同的(不同的)值

语法

SELECT DISTINCT column_name,column_name FROM table_name;

在您的情况下,您的查询应该像

SELECT DISTINCT bl_year FROM XYZ;

不要使用limit它只会显示您想要rows

tablehtml, body{ height: 100%; } #page_container{ display: flex; width: 100%; flex: 1; } #page_sidebar{ flex: 0 0 220px; background-color: #2E3254; } #page_primary{ flex: 1; background-color: #F8F9FA; }

答案 3 :(得分:0)

    public function update_purchase_data($data,$count)
    {
       $count=$count+1; 
         for($i=0;$i<$count;$i++) 
        {
            $data_array = array(

            'po_id' => $id,
            'po_tools' => $data['data']['po_tools'] ,
            'po_quantity' =>$data['data']['po_quantity']   
            );
            $this->db->update('purchase_order_tool', $data_array);     
            $this->db->where('po_id',$purchase_id);
        } 
  }       

使用distinct函数...它合并表中应用distinct的所有类似记录

答案 4 :(得分:0)

以这种方式更改查询

SELECT MIN(es_id),bl_year, bl_created_by FROM blog WHERE bl_status = 'Approved' GROUP BY bl_year LIMIT 1";

答案 5 :(得分:0)

DISTINCT关键字可用于仅返回不同的(不同的)值。

content/dam/Test

答案 6 :(得分:-1)

mysql:

select distinct `you_row` from `your_table`