我有以下查询,并且只想列出第一个匹配项。
$first = $_GET['category'];
$first = $first[0] . "%";
$query = mysql_query("SELECT * FROM lyrics WHERE authorclean LIKE '".$first."'") or die(mysql_error());
(?类别=b)
那么 DISTINCT 可以做到这一点吗?这是我尝试过的,但没有成功:
$query = mysql_query("SELECT DISTINCT authorclean FROM lyrics WHERE authorclean LIKE '".$first."'") or die(mysql_error());
编辑:这是完整的代码:
function getCategory() {
$first = $_GET['category'];
$first = $first[0] . "%";
$query = mysql_query("SELECT DISTINCT authorclean FROM lyrics WHERE authorclean LIKE 'B%'") or die(mysql_error());
//$query = mysql_query("SELECT * FROM lyrics WHERE authorclean LIKE '".$first."'") or die(mysql_error());
if(mysql_num_rows($query) == 0) {
echo "Geen resultaten gevonden.";
} else {
while ($row = mysql_fetch_assoc($query)) { ?>
<p><a href="/<?= $_GET['category']; ?>/<?= strtolower($row['authorclean']); ?>/"><?= $row['author']; ?></a></p>
<?php }
}
}
(B%仅供测试)
如果我直接在数据库中运行以下查询,我会得到两个结果。如果我运行上面的代码,我只会得到一个空页面(除了已经存在的 html)。
SELECT DISTINCT authorclean FROM lyrics WHERE authorclean LIKE 'B%'
最佳答案
您应该使用LIMIT 1
仅列出第一个匹配项。
关于mysql - 使用 DISTINCT 过滤重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161892/