如何使用explode从两个表中获得不同的结果?

aelbi1ox  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(369)

这个问题在这里已经有答案了

在数据库列中存储分隔列表真的那么糟糕吗(10个答案)
两年前关门了。
我需要你的帮助。举个例子:
表a

id | colors
-------------------------
1  | green
2  | green, blue, red
3  | blue, red

表b

id | colors | name
--------------------------
1  | green  | Apple
2  | blue   | Water
3  | red    | Fire
4  | yellow | Sun

在php中,如果表a中存在颜色,我尝试选择表b的不同名称。我该怎么做?

3hvapo4f

3hvapo4f1#

您可以使用find\ in\ u set并检查结果是否大于0

select distinct a.* 
from tableB b
inner join tableA a on  find_in_set(b.colors, a.colors) >0

为了得到你能得到的结果

$sql="SELECT DISTINCT b.name. b.colors 
    FROM b INNER JOIN a ON find_in_set(b.colors, a.colors) >0";
$result=mysqli_query($con, $sql);
 while($rows=mysqli_fetch_array($result)) { 
    echo $rows["name"]; 
    echo $rows["colors"]; 
    }

相关问题