我想摆脱数据库中的重复条目,所以我想使用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相同。
答案 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