我正在尝试为我的问题提出正确的查询。基本上,如果我这样做,我可能会得到100多个完全相同的结果:
$query = "SELECT * FROM highway WHERE state = 'VA'";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
//code
有了这个,我会得到:
95
95
95
95 (and on and on...)
64
64
64 (and on and on...)
获得正确的查询是什么:
95
64
66
81
答案 0 :(得分:2)
您可以使用DISTINCT
关键字:
ALL
和DISTINCT
选项指定是否应该有重复的行 回。ALL
(默认值)指定所有匹配的行应该是 返回,包括重复。DISTINCT
指定删除 结果集中的重复行。指定两者都是错误的 选项。DISTINCTROW
是DISTINCT
的同义词。
所以:
SELECT DISTINCT * FROM highway WHERE state = 'VA'
但是如果你的结果集在考虑某些列时有重复,那么在我看来你的数据库表可能设计得很糟糕。您是否进一步考虑了normalising他们?
答案 1 :(得分:0)
在查询中使用GROUP BY columname
。
$query = "SELECT * FROM highway WHERE state = 'VA' GROUP BY columnameof9596etc.";