2011-01-22 23 views
0

假设我有3列命名为'page','book info',其中各种值为'author','book data',其中我会有'dan brown'等值, 'moliere'...我有很多页面,作者是moliere。我的查询是目前:mysql querys显示一次行类型

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

这将列出所有的作者,如前面所说的“莫里哀”出现了很多次,我怎么会只列出一个作家一次?

回答

0

你可以说的RDBMS要么与DISTINCT关键字只返回重复行:

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

所以MySQL将只返回一行为每个不同的book data值。

或一组:

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

您可以使用分组:

SELECT * FROM table GROUP BY `book info` 

,它允许您例如跟踪每个作者写的书的数量:

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