


Help: How does mysql find results based on the given ID order?
Dear masters, now I have encountered a problem and need your help.
There are the following two tables
post table: article table.
Record table: Record table, used to record the user's reading order.
The record table uses a field postid to record the primary key ID of the post table according to the order in which the user reads articles, that is, the foreign key of record.postid is post.id.
Now we need to find the articles in the post table based on the postid in the record table. (Assume that the reading order is: 'Article 1, Article 2, Article 2, Article 3, Article 3' allows repeated articles.)
I started with
<code>SELECT * FROM post WHERE id IN (postid1,postid2,postid2,postid3,postid3);</code>
The search results can only find articles with postid1, postid2, and postid3.
The business logic we want now is:
1: Find articles in the post table based on the user’s reading record.
2: Duplication is allowed.
For example, if the reading order of the articles read by the user is: 'Article 1, Article 2, Article 2, Article 3, Article 3', the result of searching the post table is: post.id1, post.id2, post.id2, post.id2 ,post.id3.
Note: Consider using FOR loop
<code> for (.....){ ... 变量 数组x; 数组x添加 SELECT * FROM post WHERE id = postidx; .... }</code>
But I am worried about efficiency.
Reply content:
Dear masters, now I have encountered a problem and need your help.
There are the following two tables
post table: article table.
Record table: Record table, used to record the user's reading order.
The record table uses a field postid to record the primary key ID of the post table according to the order in which the user reads articles, that is, the foreign key of record.postid is post.id.
Now we need to find the articles in the post table based on the postid in the record table. (Assume that the reading order is: 'Article 1, Article 2, Article 2, Article 3, Article 3' allows repeated articles.)
I started with
<code>SELECT * FROM post WHERE id IN (postid1,postid2,postid2,postid3,postid3);</code>
The search results can only find articles with postid1, postid2, and postid3.
The business logic we want now is:
1: Find articles in the post table based on the user’s reading record.
2: Duplication is allowed.
For example, if the reading order of the articles read by the user is: 'Article 1, Article 2, Article 2, Article 3, Article 3', the result of searching the post table is: post.id1, post.id2, post.id2, post.id2 ,post.id3.
Note: Consider using FOR loop
<code> for (.....){ ... 变量 数组x; 数组x添加 SELECT * FROM post WHERE id = postidx; .... }</code>
But I am worried about efficiency.
SELECT P.*
FROM Post P
LEFT JOIN Record R ON R.PostID = P.ID
ORDER BY R.ID ASC
The Record table records the reading order, so it needs to be sorted according to the order of the Record table
It can provide an idea: use in to retrieve data from the database, and use map to establish the corresponding relationship map.put(postid, post). Then take it out in the order of ids and assemble the required data types

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











In MySQL, the function of foreign keys is to establish the relationship between tables and ensure the consistency and integrity of the data. Foreign keys maintain the effectiveness of data through reference integrity checks and cascading operations. Pay attention to performance optimization and avoid common errors when using them.

The main difference between MySQL and MariaDB is performance, functionality and license: 1. MySQL is developed by Oracle, and MariaDB is its fork. 2. MariaDB may perform better in high load environments. 3.MariaDB provides more storage engines and functions. 4.MySQL adopts a dual license, and MariaDB is completely open source. The existing infrastructure, performance requirements, functional requirements and license costs should be taken into account when choosing.

Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

AI can help optimize the use of Composer. Specific methods include: 1. Dependency management optimization: AI analyzes dependencies, recommends the best version combination, and reduces conflicts. 2. Automated code generation: AI generates composer.json files that conform to best practices. 3. Improve code quality: AI detects potential problems, provides optimization suggestions, and improves code quality. These methods are implemented through machine learning and natural language processing technologies to help developers improve efficiency and code quality.

HTML5 brings five key improvements: 1. Semantic tags improve code clarity and SEO effects; 2. Multimedia support simplifies video and audio embedding; 3. Form enhancement simplifies verification; 4. Offline and local storage improves user experience; 5. Canvas and graphics functions enhance the visualization of web pages.

MySQL and phpMyAdmin can be effectively managed through the following steps: 1. Create and delete database: Just click in phpMyAdmin to complete. 2. Manage tables: You can create tables, modify structures, and add indexes. 3. Data operation: Supports inserting, updating, deleting data and executing SQL queries. 4. Import and export data: Supports SQL, CSV, XML and other formats. 5. Optimization and monitoring: Use the OPTIMIZETABLE command to optimize tables and use query analyzers and monitoring tools to solve performance problems.

To safely and thoroughly uninstall MySQL and clean all residual files, follow the following steps: 1. Stop MySQL service; 2. Uninstall MySQL packages; 3. Clean configuration files and data directories; 4. Verify that the uninstallation is thorough.

Efficient methods for batch inserting data in MySQL include: 1. Using INSERTINTO...VALUES syntax, 2. Using LOADDATAINFILE command, 3. Using transaction processing, 4. Adjust batch size, 5. Disable indexing, 6. Using INSERTIGNORE or INSERT...ONDUPLICATEKEYUPDATE, these methods can significantly improve database operation efficiency.
