【发布时间】:2018-02-25 16:19:39
【问题描述】:
我有一个看起来像这样的表:
ID Name Location
1 peter New York
2 john New York
3 jack New York
4 shaun London
正如您所见,许多用户的位置列值可能相同,例如,在搜索纽约时,我如何才能从每个位置仅获得一个结果?
我正在使用这些 SQL 查询:
$stmt = $pdo->prepare('SELECT * from users WHERE location SOUNDS LIKE :s');
$stmt->bindValue(':s', '%' . $query . '%' , PDO::PARAM_INT);
$stmt->execute();
$values = $stmt->fetchAll();
$count = $stmt->rowCount();
if($count > 0){
foreach($values as $val){
echo $val['location'];
}
}
请注意:
我不想使用LIMIT 1,因为它用于搜索表单,并且用户可能希望在输入 new 时查看其他位置,例如 Newcastle。
是否可以这样或者我需要创建另一个与用户表具有一对多关系的表?
【问题讨论】:
-
你要哪一个?
-
@GordonLinoff ,这是一个搜索表单,所以它可以是任何位置,并且这个位置可能存在不止一次,我只想从每个重复的位置显示一个
-
@Syscall , 使用有什么问题吗?
标签: php mysql sql database pdo