假设我有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'多次出现,我怎么才会只列出一次作者?
答案 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`