如何在mySQL中分类为动态生成的特定顺序?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在mySQL中分类为动态生成的特定顺序?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1507字,纯文字阅读大概需要3分钟。
内容图文
![如何在mySQL中分类为动态生成的特定顺序?](/upload/InfoBanner/zyjiaocheng/880/8246184eb2ab4480a6d5d4cc55dd9ccb.jpg)
我一直在为此绞尽脑汁,但没有取得任何进展.我对SQL不太好,所以我希望答案很简单,我只是不知道.
我有2个表:一个名为“ images”的表,其中包含我想要的数据,并用主键“ imageID”进行组织.另一个称为“ productPhotos”,它包含两个字段(加上主键):imageID和productID.因此,对于给定的产品,可能会有多个图像,并且给定的图像可能用于表示多个产品.
到目前为止,它运行良好,但是问题来了.我有一个动态生成的产品ID列表,我想加载代表这些产品的所有图像.而且,我不仅要加载它们,而且还希望按照列表中产品的顺序进行加载.
因此,如果我的产品列表是“ 5、2、4”,我希望我的输出列表首先包含产品5的所有图像,然后是产品2的所有图像,然后是产品4的所有图像.请特别注意子组中的顺序.
获取正确的图像非常简单,但是以正确的顺序获取它们是可恶的.我想出了如何以正确的顺序获取想要的图像的ID,但是到目前为止,实际上我没有获得单独的MySQL调用就获取了这些图像.我尝试设置一个临时表,将所需的ID存储在@variable中,并在ORDER BY FIELD()和ORDER BY FIND_IN_SET()上进行了许多不同的更改.
到目前为止,这是我得到的:
从productPhotos中选择imageID,在productID为(5,2,4)的情况下按字段排序(specificProductUID,5、2、4);
这样就成功地按正确的顺序返回了一组imageID,但是我一直受困于从那里获取来自image表的那些imageID的数据.我知道我可以很容易地做到这一点,只需在PHP中使用两个单独的数据库调用(一个用于获取imageID,另一个用于加载图像),但是(我认为)这将对性能产生重大影响,而且看起来应该有更好的方法来做到这一点.
在此先感谢您的帮助.
解决方法:
SELECT images.*
FROM images
INNER JOIN productPhotos ON images.imageID = productPhotos.imageID
WHERE productID in (5, 2, 4)
ORDER BY FIELD(specificProductUID, 5,2,4);
内容总结
以上是互联网集市为您收集整理的如何在mySQL中分类为动态生成的特定顺序?全部内容,希望文章能够帮你解决如何在mySQL中分类为动态生成的特定顺序?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。