thinkphp - mysql查询数据问题
大家讲道理
大家讲道理 2017-04-17 13:29:03
[MySQL讨论组]


表a的一个字段,我需要根据表a这个字段的第一个数字,是表b中的id,现在我怎么优雅的取出我所需要的数据?
例子:
表a的share_imgurl的数据是3,4我只根据3在表b中进行查找

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
伊谢尔伦

1.为了取出share_imgurl的第一个id,我用LEFT("3,4", LOCATE(",", "3,4")-1)这种方法。
2.由于题主没有给出数据表结构,我简单构造了两个表结构:

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号