2011-01-22 71 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`