mysql> select * from tab_a;
+----+--------------+
| id | share_imgurl |
+----+--------------+
| 1 | 3,4 |
| 2 | 16,17 |
| 3 | 13,15 |
| 4 | 13,14 |
| 5 | 11,12 |
+----+--------------+
5 rows in set
mysql> select * from tab_b;
+----+-------+
| id | text |
+----+-------+
| 1 | text1 |
| 2 | text2 |
| 3 | text3 |
+----+-------+
3 rows in set
mysql>
3.解决本题的SQL或许可以这么写:
SELECT b.* FROM tab_a a
LEFT JOIN tab_b b
ON LEFT(a.`share_imgurl`, LOCATE(",", a.`share_imgurl`)-1) = b.`id`
WHERE b.`id` IS NOT NULL;
+----+-------+
| id | text |
+----+-------+
| 3 | text3 |
+----+-------+
1 row in set
1.为了取出
share_imgurl的第一个id,我用LEFT("3,4", LOCATE(",", "3,4")-1)这种方法。2.由于题主没有给出数据表结构,我简单构造了两个表结构:
3.解决本题的
SQL或许可以这么写: