无法与GROUP BY一起使用LIKE

时间:2017-04-19 08:46:30

标签: php mysql

我想摆脱数据库中的重复条目,所以我想使用GROUP BY但它似乎不适用于LIKE。以下是我的询问。

$query = array();
$query[] = "SELECT * FROM `table_name` WHERE `id` LIKE :id GROUP BY id";

$query = implode(' ', $query);

$statement = self::$connection->prepare($query);
$statement->execute(
    array(
        ':id' => '%'.$id.'%'
    ));
$data = $statement->fetchAll(PDO::FETCH_ASSOC);

return $data;

好的,表的值结构如下:

id:   location:
001        testA
002        testA
003        testB
004        testC
005        testB

如何从像上面这样的值的表中获取唯一的位置。

我试着像这样:

SELECT DISTINCT location, id FROM `table_name` WHERE `id` LIKE :id

它似乎返回了唯一的ID,但是,我希望获得独特的位置。我确实尝试了不同的(位置),但结果与唯一ID相同。

2 个答案:

答案 0 :(得分:0)

试试这个:

select a.trialno, a.location from table_name a join table_name b on(b.trialno>a.trialno and a.location=b.location) group by a.trialno

如果位置不唯一,您将获得所有旧条目。如果trialno是Int。

,它可以工作

最好的问候

托马斯

答案 1 :(得分:0)

试试这个

SELECT DISTINCT location, id FROM `table_name` WHERE `id` LIKE '%'.$id.'%'

而不是

SELECT DISTINCT location, id FROM `table_name` WHERE `id` LIKE :id
相关问题