gpt4 book ai didi

mysql 左连接重复行

转载 作者:行者123 更新时间:2023-11-29 14:48:09 25 4
gpt4 key购买 nike

我正在开发一个字典数据库,其中有 4 个表,设计如下

words
wordid | lemma

senses
wordid | synsetid

synsets
synsetid | definition

samples
synsetid | sample

所以我使用下面的查询来获取所有意义定义和示例

if(isset($searchterm)){ 

echo "<b>".$searchterm."</b><hr>";

// QUERY TO FIND SENSES
$senses_query="SELECT
words.lemma,words.wordid,
senses.wordid,senses.synsetid,
synsets.synsetid, synsets.definition,
samples.synsetid, samples.sample
FROM
words
LEFT JOIN
senses ON words.wordid=senses.wordid
LEFT JOIN
synsets ON senses.synsetid=synsets.synsetid
LEFT JOIN
samples ON senses.synsetid=samples.synsetid
WHERE
words.lemma REGEXP '^$searchterm$'";

$senses_query_result = mysql_query($senses_query) OR die("sense alamadım.<br>".mysql_error());
$num=mysql_num_rows($senses_query_result);


while($sensesFound = mysql_fetch_array($senses_query_result )){

echo "&nbsp; " . $sensesFound['lemma'] . "";
echo "&nbsp; " . $sensesFound['definition'] . "";
echo "&nbsp; " . $sensesFound['sample'] . "";
echo "<br>";

}

}

问题是:如果定义有多个示例,它会像这样重复。

definition 1 sample 1
definition 1 sample 2
definition 2 sample 1
definition 2 sample 2
definition 2 sample 3
e.t.c

我喜欢有像这样的行

definition 1 sample 1 sample 2
definition 2 sample 1 sample 2 sample 2

我在 select 上尝试了 group_concat,但它将所有定义的所有样本连接成单个。

是否可以使用 mysql 查询或者我应该使用 php 来处理此类工作。

提前致谢

最佳答案

您可以使用 GROUP_CONCAT 然后在 php 中使用 explode在色谱柱上分离各个 sample 。

此外,对于 GROUP_CONCAT,请确保使用示例文本中未使用的分隔符。

关于mysql 左连接重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6412307/

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