mysql根據ID的順序查找_求救:mysql 如何根據給定的 ID順序查找結果?

各位大神,現在我遇到了一個難題需要你們的幫助。

有下面兩個表

post表:文章表。

record表:記錄表,用于記錄用戶閱讀順序。

record表 根據用戶的閱讀文章順序用一個字段 postid 記錄 post 表的主鍵ID,既 record.postid 的外鍵為 post.id 。

現在需要根據 record 表里的 postid 查找 post表的文章。(假設用記閱讀順序為:'文章1,文章2,文章2,文章3,文章3' 允許文章重復。)

開始我用

SELECT *

FROM post

WHERE id IN (postid1,postid2,postid2,postid3,postid3);

查找結果只能查找 postid1,postid2,postid3 的文章。

現在想要的業務邏輯是:

1:根據用戶的閱讀記錄查找post表文章。

2:允許重復。

比如用戶閱讀的文章讀順序為:'文章1,文章2,文章2,文章3,文章3',查找 post 表出來的結果為:post.id1, post.id2,post.id2,post.id2,post.id3。

注:考慮過用 FOR 循環

for (.....){

...

變量 數組x;

數組x添加 SELECT * FROM post WHERE id = postidx;

....

}

但又擔心效率問題。

回復內容:

各位大神,現在我遇到了一個難題需要你們的幫助。

有下面兩個表

post表:文章表。

record表:記錄表,用于記錄用戶閱讀順序。

record表 根據用戶的閱讀文章順序用一個字段 postid 記錄 post 表的主鍵ID,既 record.postid 的外鍵為 post.id 。

現在需要根據 record 表里的 postid 查找 post表的文章。(假設用記閱讀順序為:'文章1,文章2,文章2,文章3,文章3' 允許文章重復。)

開始我用

SELECT *

FROM post

WHERE id IN (postid1,postid2,postid2,postid3,postid3);

查找結果只能查找 postid1,postid2,postid3 的文章。

現在想要的業務邏輯是:

1:根據用戶的閱讀記錄查找post表文章。

2:允許重復。

比如用戶閱讀的文章讀順序為:'文章1,文章2,文章2,文章3,文章3',查找 post 表出來的結果為:post.id1, post.id2,post.id2,post.id2,post.id3。

注:考慮過用 FOR 循環

for (.....){

...

變量 數組x;

數組x添加 SELECT * FROM post WHERE id = postidx;

....

}

但又擔心效率問題。

SELECT P.*

FROM Post P

LEFT JOIN Record R ON R.PostID = P.ID

ORDER BY R.ID ASC

Record表記錄閱讀順序,所以需要根據Record表的順序來就排序

可以提供一種思路:用in的方式從數據庫取出數據,用map建立對應關系map.put(postid,post)。再按照id的順序取出后組裝需要的數據類型

f68f2add0b68e4f9810432fce46917b7.png

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538049.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538049.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538049.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DIY—USB學習板設計以及驅動開發

暑假在Intel OTC做訪問學者時,看到公司有兩個小巧的USB設備-溫度計和LED音樂播放器,用于交大學生的Linux Kernel教學中。但看似簡單的這些設備,還是從國外購買而得。因此,從intel回來之后,我就告訴學生能否設計一種USB…

ps -ef |grep

[rootzengmg 6379]# ps -ef | grep redisroot 1978 1 0 09:35 ? 00:00:16 /usr/local/bin/redis-server 127.0.0.1:6379 root 116656 2708 0 15:56 pts/1 00:00:00 grep redis 字段含義如下: UID PID PPID CSTIME…

python入坑指南_Rust入坑指南:萬物初始

有沒有同學記得我們一起挖了多少個坑?嗯…其實我自己也不記得了,今天我們再來挖一個特殊的坑,這個坑可以說是挖到根源了——元編程。元編程是編程領域的一個重要概念,它允許程序將代碼作為數據,在運行時對代碼進行修改…

python和noip的區別_【noi與noip的區別】

什么是NOINOI:全國青少年信息學奧林匹克(NOI)是國內包括港澳在內的省級代表隊高水平的大賽,自1984年至今,在國內包括香港、澳門組織競賽活動。每年經各省選拔產生5名選手(其中一名是女選手),由中國計算機學會在計算機普及較好的城…

gradle和maven區別

原文連接:http://blog.csdn.net/jueane/article/details/50383431 --------------------------------------------- Gradle和Maven都是項目自動構建工具,編譯源代碼只是整個過程的一個方面,更重要的是,你要把你的軟件發布到生產…

iOS開發提問題

1、打造最受企業歡迎的iOS開發者: 一直都存在的問題,什么樣的員工最受企業歡迎?一直也有人在努力提升自己,成為受企業歡迎的員工然而,我們應該往方向去提升自己呢?88家知名企業今年來iOS面試題合集&#xf…

maven引用公共包_使用github作為maven倉庫存放發布自己的jar包依賴 實現多個項目公共部分代碼的集中,避免團隊中多個項目之間代碼的復制粘貼...

使用github作為maven倉庫存放發布自己的jar包依賴 實現多個項目公共部分代碼的集中,避免團隊中多個項目之間代碼的復制粘貼。1、首先在本地maven位置的配置文件setting.xml(沒有該文件就新建這個文件)中,添加配置maven倉庫的地址。我用的是我的GitHub倉庫…

Gradle筆記——Gradle的簡介與安裝

原文連接:http://blog.csdn.net/maosidiaoxian/article/details/40109337 gradle專欄 ----------------------------------------- Gradle 安裝 1,安裝JDK,并配置JAVA_HOME環境變量。因為Gradle是用Groovy編寫的,而Groovy基于JA…

WPF之鼠標滑動切換圖片

原文:WPF之鼠標滑動切換圖片在網上找了一會兒也沒找到我想要的效果,還是自己動手,豐衣足食吧。 需求:當前面板中只顯示一張圖片,圖片欄的下部有用來顯示當前圖片處于圖片隊列中的位置的圓球,并且點擊下部欄內的圓球可以…

CPU的核心數、線程數的關系和區別

原文地址:http://blog.csdn.net/yu132563/article/details/45222935 ------------------------------------- 我們在選購電腦的時候,CPU是一個需要考慮到核心因素,因為它決定了電腦的性能等級。CPU從早期的單核,發展到現在的雙核…

mysql in 子查詢優化_mysql in 子查詢 容易優化

mysql in 子查詢 簡單優化 大數量下,不要使用 in 嵌套子查詢,性能很差,很容易卡死。 ? 簡單調整方式如下: select uid,nick_name from uc_users where uid in(select fid from uc_follow where uid#uid#) ? 可拆解成&#xff1a…

谷歌瀏覽器插件入門示例

2019獨角獸企業重金招聘Python工程師標準>>> 實現:任何網址實現圖片下載和獲取當前域名的cookies的json字符串。 圖片下載是給小白用的,可以選中批量下載,獲取cookies 是為了方便程序員調試用。 獲取cookies: git地址:…

Fiddler中response亂碼的解決方案

原文連接:http://blog.csdn.net/quiet_girl/article/details/50577828 ---------------------------------------------------------- 有時候我們看到Response中的HTML是亂碼的, 這是因為HTML被壓縮了, 我們可以通過兩種方法去解壓縮。 解決…

線程帶來的風險

線程安全性問題 多線程環境下 多個線程共享一個資源對資源進行非原子性操作。 以上三者都存在就會發生線程安全性問題 如文中的賣火車票問題:http://blog.csdn.net/zengmingen/article/details/53217229 原因是:一行java代碼轉成.class字節碼文件后是…

vue內引入語音播報功能

為什么80%的碼農都做不了架構師?>>> 在vue項目中引入語音播報,使用的科大訊飛語音接入, 具體思路為每次接收到語音信息后存入一個數組,然后監聽這個數組,開始沖第一個索引播放,并且同時根據vue…

php mysql 排序規則_php 數組排序以及按照某個字段排序

如果你已經使用了一段時間PHP的話,那么,你應該已經對它的數組比較熟悉了——這種數據結構允許你在單個變量中存儲多個值,并且可以把它們作為一個集合進行操作。經常,開發人員發現在PHP中使用這種數據結構對值或者數組元素進行排序…

單例問題與線程安全

餓漢式 沒有線程安全性問題 懶漢式 public class SingletonDemo2 {private static SingletonDemo2 instance;private SingletonDemo2() {}public static SingletonDemo2 getInstance() {if(instancenull) {instancenew SingletonDemo2();}return instance;}}如果遇到多線程。上…

python 音速_中國大學MOOC的APP(慕課)2021用Python玩轉數據章節答案

在高技術戰爭件下,信息的獲取相當于人的感覺器官,信息的傳輸相當于人的神經網絡,信息的處理相當于人的大腦,( )則將它們聯系為一個整體,構成了作戰的神經系統。車身可拆卸的連接有螺紋連接、卡口鏈接、鉸鏈連接。在高技術戰爭件下,信息的獲取相當于人的感覺器官,信息的傳輸相當…

Mysql中的觸發器

原文地址:https://www.cnblogs.com/zyshi/p/6618839.html ---------------------------------------------------------什么是觸發器 簡單的說,就是一張表發生了某件事(插入、刪除、更新操作),然后自動觸發了預先編寫好…

一張圖理解JS的原型(prototype、_proto_、constructor的三角關系)

注意:前方高能預警,請認真仔細看完,閱讀完后自己再次畫下原型圖,相信你一定會有更深刻的認識。(推薦炒雞好用的畫流程圖的軟件ProcessOn)構造函數:function Foo ( ) { };實例對象:let f1new Foo;let o1new …