gpt4 book ai didi

php - 如何同时使用 DISTINCT 行和非 DISTINCT 行

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:47 26 4
gpt4 key购买 nike

全部!今天我有一个棘手的问题要给你,我想使用 select DISTINCT 语句来选择一个需要不同的行,但也在同一个语句中(或者我尝试过的方式?)一个没有的行't/不能区分。我想要的结果是每个类名中只有一个。目前它的输出是这样的:

English: textbook, folder, laptop
English: textbook
Media: textbook, folder
English: textbook, folder
English: textbook, folder
Art: textbook

这就是我希望它输出的方式:

English: textbook, folder, laptop
Media: textbook, folder
Art: textbook

这是数据库的布局:

|ID|classname|Book  
|49|English |textbook, folder, laptop
|50|English |textbook
|53|Media |textbook, folder
|54|English |textbook, folder
|55|Art |folder

我显然是 php 的新手,所以我们将不胜感激!

到目前为止,这是我的方法:

$sql = "SELECT DISTINCT classname FROM classes ORDER BY Due;";
$result1 = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result1);
if ($resultCheck > 0){
while ($row = mysqli_fetch_assoc($result1)){
$classname = $row["classname"];

if ($classname == "English"){
$newName = $classname;
$sql = "SELECT Book FROM classes WHERE Book='$newName';";
$result1 = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result1);

if ($resultCheck > 0){
while ($row = mysqli_fetch_assoc($result1)){
$materials = $row["Book"];
echo "<div class='subname'>$newName:";
echo "<div class='wow'>$materials</div>";
echo "</div><br>";
}

}
}
}
}

最佳答案

好吧,考虑到你的数据库设计糟糕,你需要做的第一步是逐项列出你的列表,比如“教科书、文件夹、笔记本电脑”[这样你得到三行一个项目,而不是一行三个项目] .该操作的语义有点像 SQL UNNEST 但遗憾的是,数据库的“结构”(只要使用该词适合您所拥有的)不适合使用它。我不确定它是否可以在没有某种形式的过程编码的情况下完成,因此最有可能正确的答案是“忘记在一个 SQL 语句中执行该操作”。

您所说的 DISTINCT 可以仅应用于[您得到的结果]在分项之后

应用 DISTINCT 后,您需要重新分组。也许可以用客户端语言来完成,但我不喜欢这些。

关于php - 如何同时使用 DISTINCT 行和非 DISTINCT 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54512324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com