不能'选择DISTINCT`

时间:2015-11-09 14:09:00

标签: php mysql sql

我在我的mysql中尝试Select DISTINCT列。

PHP

$query = "SELECT DISTINCT column1 as value, id FROM table WHERE column1 LIKE '%".$term."%'";;

$term = trim(strip_tags($_GET['term']));

while ($row = $stmt->fetch()){
    $row['value']=htmlentities(stripslashes($row['value']));
    $row['id']=(int)$row['id'];
    $row_set[] = $row;
}

结果与使用DISTINCT时的结果相同 为什么呢?

1 个答案:

答案 0 :(得分:1)

可能id是唯一的(将其删除以获取DISTINCT column1值):

$query = "SELECT DISTINCT column1 as `value` FROM table WHERE column1 LIKE '%".$term."%'";;

例如:

id column1
1 'a'
2 'a'
3 'b'
4 'c'

你想要:

column1
'a'
'b'
'c'

修改

如果您需要id,那么您的查询将按预期完美运行。您也可以尝试GROUP_CONCAT获取相应ID的列表。

SELECT column1 AS `value`, GROUP_CONCAT(id) AS ids
FROM table 
WHERE column1 LIKE ...
GROUP BY column1

输出:

column1 ids
'a'     1,2
'b'     3
'c'     4