mysql查询显示行类型一次

时间:2011-01-22 10:32:44

标签: php mysql

假设我有3个名为'page'的列,'book info',其中包含各种值,一个是'author',而'book data'我将拥有诸如'dan brown','moliere'之类的值...我可以有很多页面与moliere作为作者。我的查询目前是:

$data = mysql_query("SELECT * FROM table WHERE 'book info' = 'author'") while($info = mysql_fetch_array( $data )) { echo $info['book data']; }

这列出了所有的作者,正如之前所说的'moliere'多次出现,我怎么才会只列出一次作者?

2 个答案:

答案 0 :(得分:0)

您可以对RDBMS说只使用DISTINCT关键字返回不同的行:

SELECT DISTINCT `book data` FROM table WHERE `book info` = 'author'

因此MySQL将为每个不同的book data值返回一行。

或使用GROUP:

SELECT `book data`, other_column FROM table WHERE `book info` = 'author' GROUP BY `book data`, other_column

答案 1 :(得分:0)

您可以使用分组:

SELECT * FROM table GROUP BY `book info`

允许您跟踪每位作者撰写的书籍数量:

SELECT count(`page`) FROM table GROUP BY `book info`