1

我试图从“特别”中选择不同的名称,但仅在 col Type = 特定值的情况下。

例如我有

rowID    Type   Specifically
1        cat    Ocicat
2        cat    Bombay
3        cat    Bombay
4        cat    Bengal
5        cat    Savannah
6        dog    Collie
7        dog    Keeshond
8        dog    Pug
9        dog    Keeshond
10       dog    Pug
11       dog    Doberman
12       Horse  n/a

我想读出类似的东西

type=cat and specific=Bengal
type=cat and specific=Bombay
type=cat and specific=Ocicat
type=cat and specific=Savannah

我目前有这个,但它给了我“未定义的索引:类型”

$Result = mysql_query("select distinct Specifically from pet_table WHERE Type='cat' ORDER BY Specifically asc ");

while($row = mysql_fetch_array($Result)) 
{
PRINT("type=".$row['Type']." and specific=".$row['Specifically']."<BR>");
}

我也想做一些类似 Type 不是 cat OR dog OR horse ... 等的事情

谢谢

4

4 回答 4

2

该索引不存在,因为您没有选择它。包括Type在您的SELECT声明中以修复它。

于 2013-03-12T17:54:41.703 回答
2

您收到未定义索引错误,因为您没有获取该Type列,而是尝试使用它。

将您的查询更改为。

select type, distinct Specifically from pet_table 
WHERE Type='cat' ORDER BY Specifically asc

其次,如果你想要 Type not cat or dog or horse,你可以使用NOT IN从句。

最后,请不要使用 MySQL,因为它没有维护并且已被弃用。考虑使用 MySQLi 或 PDO。

于 2013-03-12T17:54:46.663 回答
1

你想要 GROUP BY

SELECT Type, Specifically FROM pet_table
  WHERE Type='cat'
  GROUP BY Specifically
  ORDER BY Specifically asc
于 2013-03-12T17:53:50.793 回答
0

您收到此错误的原因是您没有选择Type.

$res = mysql_query("SELECT DISTINCT `Specifically`,`Type` from `pet_table` WHERE `Type`='cat' ORDER BY `Specifically` ASC");

while($row = mysql_fetch_assoc($res))
{
    echo "The type is {$row['Type']} and it is specifically a {$row['Specifically']}
}
于 2013-03-12T17:57:02.720 回答