Mysql 如何删除重复的内容?

Mysql 如何删除重复的内容?,mysql,coldfusion,coldfusion-9,Mysql,Coldfusion,Coldfusion 9,我在学习ColdFusion。我想展示一篇文章和3张图片。我的代码可以编译,但它显示了文章3次和3张图片。我只想把这篇文章展示一次。有人能看一下我的代码并给我一个提示吗?谢谢你的时间 <html> <head> <title>Hello</title> </head> <body> <h3>Full Article View</h3> <CFQUERY NAME="my

我在学习ColdFusion。我想展示一篇文章和3张图片。我的代码可以编译,但它显示了文章3次和3张图片。我只想把这篇文章展示一次。有人能看一下我的代码并给我一个提示吗?谢谢你的时间

<html>
<head>
    <title>Hello</title>
</head>
<body>
    <h3>Full Article View</h3>

    <CFQUERY NAME="myQuery1" Datasource="mydb" >
        SELECT *
        FROM articles
        INNER JOIN article_image_mapping ON articles.article_ID = article_image_mapping.aim_articleID
        INNER JOIN images ON aim_imageID = images.image_ID
        WHERE articles.article_ID = #URL.ID#
    </CFQUERY>


    <div align="left">
        <cfoutput query="myQuery1">
            #ucase(myquery1.article_title)# <br/>
            -------------------------------------<br>
            #myquery1.article_author# :: #myquery1.article_date#<br/>
            #myquery1.article_content#<br/>
            #myquery1.image_thumbpath#<br/>
        </cfoutput>
    </div>
</body>
</html>
您需要在查询中使用group属性,并在查询中输入ORDER BY。我还建议只列出SELECT语句中需要的列

<CFQUERY NAME="myQuery1" Datasource="mydb" >
 SELECT article_title, article_author, article_content, image_thumpath
 FROM articles
 INNER JOIN article_image_mapping ON articles.article_ID = article_image_mapping.aim_articleID
 INNER JOIN images ON aim_imageID = images.image_ID
 WHERE articles.article_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#URL.ID#">
 ORDER BY article_title <!--- this is important! --->
</CFQUERY>


<div align="left">
  <cfoutput query="myQuery1" group="article_title"><!--- show the article_title once --->
    #ucase(myquery1.article_title)# <br/>
    -------------------------------------<br>
     <cfoutput><!--- loop through all results with same article title --->
      #myquery1.article_author# :: #myquery1.article_date#<br/>
      #myquery1.article_content#<br/>
      #myquery1.image_thumbpath#<br/>
     </cfoutput>
  </cfoutput>
</div>

Matt是对的,您正在cfoutput中查找group属性。尽管我认为内部cfoutput循环的位置并不是您想要的。我想这就是你想要实现的

<!--- use the group attribute to show the article once --->
<cfoutput query="myQuery1" group="article_id">
    #ucase(myquery1.article_title)# <br/>
    -------------------------------------<br>
    #myquery1.article_author# :: #myquery1.article_date#<br/>
    #myquery1.article_content#<br/>
    <!--- use an inner cfoutput to loop over the associated images --->
    <cfoutput>
        #myquery1.image_thumbpath#<br/>
    </cfoutput>
</cfoutput>
内部cfoutput中的任何内容都将为查询中的每条记录显示一次。具有group属性的外部cfoutput中的项目在每个组中只显示一次,因此,如果您的组是article_id,则对于给定的article_id,它只显示一次

在这种特殊情况下,articles表中应该只有一条记录,因此不必担心排序顺序,因为图像将全部附加到该记录,这将导致它们在结果查询*中彼此相邻。但是,如果您要在其他列上分组,那么Matt是正确的,您需要确保记录的排序正确-如果分组的记录在查询中不是相邻的,则它们不会在输出中分组

无关:我还建议您在上面的cfquery中使用article_id,因为数字列特别容易受到影响


*只要你没有做一些奇怪的事情,比如按image_thumbpath列排序——尽管从技术上讲,SQL标准说,除非在user2203774学习时在order by子句中明确指定它,否则不能保证任何类型的排序,请注意并在CFQUERY中使用cfqueryparam。请不要信任URL或表单范围中的任何值。