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

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

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

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

  1. id | colors
  2. -------------------------
  3. 1 | green
  4. 2 | green, blue, red
  5. 3 | blue, red

表b

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

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

3hvapo4f

3hvapo4f1#

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

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

为了得到你能得到的结果

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

相关问题