「関連記事」の結果はより関連性が高く、上位に表示されるので、効率的な書き方を見つけてください。
私の記事システム、複数の条件下でどのような可能性を達成できるかを確認したいです
4 つのテーブル 基本的な紹介
コンテンツ 記事のメインテーブル
ID
蓋 = 関連するコレクション ID、保存形式 (1,2,3)
tags = 該当TAGのID、保存形式(1,2,3)
typeid = カテゴリIDは1桁の数字のみ
コレクション
蓋
名前
タグ
id
名前
カテゴリ
typeid
名前
typeid =カテゴリID、これ以上言う必要はありません
tag = タグ = 言うまでもなく、
蓋 = コレクションですが、1 つの記事を複数のコレクションに配置できます。例: PHP+MYSQL+AJAX 更新なし コメント
ユーザーは PHP アンソロジーを置くことができます。 MYSQL記事、AJAXアンソロジー
TAGは重複がある場合は追加されませんので、独自の記事のカテゴリリストを作成することはできません。
記事の特定の部分には、現在のコレクション内の他の記事がすでに表示されているため
したがって、関連記事セクションでは、コレクション内のファイルが TAG 記事より上位にランクされるべきではありません
したがって、準備された関係性ランキングは
1. TAG 関連
2. アンソロジー
3. 現在のカテゴリの最新記事
なぜ 3 回に分けなければならないのですか???
タグ付けされすぎるのが怖いからです。アンソロジー機能は使ったことはありません....
ということで最後のステップは 現在のカテゴリー記事
現在の記事の
TAG は 3,14
蓋 = 7,12
typeid = 2
SELECT * FROM `content` WHERE `tags` IN (3,14) ORDER BY `time` DESC LIMIT 10
SELECT * FROM `content` WHERE `lid` IN (7,12) ORDER BY `time` DESC LIMIT 10
SELECT * FROM `content` WHERE `typeid` = '2' ORDER BY `time` DESC LIMIT 10
フロントに関連記事が10件表示されます
当初は3回に分ける予定でしたが、毎回 10 個の記事を取得するのが最も安全です
後で考えました...これには配列のマージなども含まれますが、ポイントは情報が多すぎることですが、フロントデスクに必要な項目は 10 個だけです
そこで、次のように変更します。一文
SELECT * FROM `video_content` WHERE `tags` IN (3,14) or `lid` IN (3) or `typeid` = 2 LIMIT 10
でも、TAG>Anthology>でランキングできるみたいです。分類...
どうやってリクエストすればいいのですか?
リクエストはページの下半分に関連記事が表示されるのでかなり面倒そうです
への返信議論(解決策)
とりあえずこのコードを使ってみましたが、少しばかばかしい気がします
より良い方法についての提案はありますか?
//相关文章if (!empty($data["tags"]) || !empty($data["lid"])) { $tags = $data["tags"]; $lid = $data["lid"]; $tag_sql = "SELECT * FROM `content` WHERE `tags` IN ($tags) OR `lid` IN ($lid) ORDER BY `time` DESC LIMIT 8"; $stmt = $pdo->prepare($tag_sql); $stmt->execute(); $tags_v = $stmt->fetchAll(PDO::FETCH_ASSOC); $smarty -> assign("r_v",$tags_v);}$tags_num = count($tags_v);if ($tags_num < 8 ) { $now_v = ""; foreach ($tags_v as $key => $value) { $now_v .= $value['vid'].","; } $now_v=substr("$now_v",0,-1); $need = 8-$tags_num; $typeid = $data["typeid"]; $typeid_sql = "SELECT * FROM `content` WHERE `typeid` = '$typeid' AND `vid` NOT IN ($now_v) ORDER BY `time` DESC LIMIT $need"; $stmt = $pdo->prepare($typeid_sql); $stmt->execute(); $typeid_v = $stmt->fetchAll(PDO::FETCH_ASSOC); $smarty -> assign("r_tv",$typeid_v);}
or を使用してください。SQL には元々ありません。良い; データがあまりタイムリーである必要がない場合
3 つの SQL ステートメントによって結合されたデータを一定期間 (30 分、1 時間、またはそれ以上) キャッシュします
データはデッドデータであるため、ビューやコメントなどはありません。
データがあまりにもタイムリーである必要がない場合は
3 つの SQL ステートメントによって結合されたデータを一定期間キャッシュします ( 30 分、1 時間、あるいはもう少し長くても構いません)
あなたのデータは閲覧数やコメントなどのない死んだデータであるためです。
ありがとうございます
これは私も理解しています
でも、私がもっと知りたいのは、ランク付けされているかどうかです。より関連性の高いものに従って、最初の
は、最初に TAG を並べ替え、次に LID を並べ替え、最後に同じ種類の他の記事を並べ替える
2 階のメソッドのみを使用できるということでしょうか? 10 個のタグが必要な場合は、最初に 10 個のタグを取得し、足りない場合は残りのタグを取得し、それでも不十分な場合は type を持つタグを取得するという意味ですか?
この場合、SQL に問題がありますか?
10 個のタグが必要な場合は、まず 10 個のタグを取得し、十分でない場合はライブラリを取得し、十分でない場合は型を取得する必要があるという意味ですか?
はい
2階で簡単なものを作りました
足りなかったら型を取ります
そして2階でテスト用に8個使います
ありますかもっと良い方法はありますか?
全文検索して実行してください

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











2024CSRankings 全国コンピューターサイエンス専攻ランキングが発表されました。今年、米国の最高のCS大学のランキングで、カーネギーメロン大学(CMU)が国内およびCSの分野で最高の大学の一つにランクされ、イリノイ大学アーバナシャンペーン校(UIUC)は6年連続2位となった。 3位はジョージア工科大学。次いでスタンフォード大学、カリフォルニア大学サンディエゴ校、ミシガン大学、ワシントン大学が世界第4位タイとなった。 MIT のランキングが低下し、トップ 5 から外れたことは注目に値します。 CSRankings は、マサチューセッツ大学アマースト校コンピューター情報科学部のエメリー バーガー教授が始めたコンピューター サイエンス分野の世界的な大学ランキング プロジェクトです。ランキングは客観的なものに基づいています

1. 今すぐ Toutiao の記事を公開してどうやってお金を稼ぐことができますか?今すぐ Toutiao で記事を公開して収入を増やす方法! 1. 基本的な権利と利益の有効化: オリジナルの記事は広告によって利益を得ることができますが、利益を得るにはビデオが横画面モードでオリジナルである必要があります。 2. ファン100人の権利を有効化:ファン数が100人以上に達すると、マイクロヘッドライン、オリジナルQ&A作成、Q&Aから利益を得ることができます。 3. オリジナル作品にこだわる: オリジナル作品には記事、小見出し、質問などが含まれ、300 ワード以上であることが求められます。違法に盗用された作品をオリジナル作品として出版した場合、クレジットポイントが減点され、利益も差し引かれますのでご注意ください。 4. 垂直性:専門分野の記事を書く場合、分野を超えて自由に記事を書くことができず、適切な推薦が得られず、専門性や洗練度が得られず、ファンもつきにくいそして読者たち。 5. 活動: 高活動、

PHP フォーム処理: フォーム データの並べ替えとランク付け Web 開発では、フォームは一般的なユーザー入力方法です。ユーザーからフォーム データを収集した後、通常はデータを処理して分析する必要があります。この記事では、PHP を使用してフォーム データを並べ替えてランク付けし、ユーザーが送信したデータをより適切に表示および分析する方法を紹介します。 1. フォームデータの並び替え ユーザーから送信されたフォームデータを収集する際、データの順序が必ずしも当社の要件を満たしていないことが判明する場合があります。特定のルールに従って表示または分割する必要があるもの

Java コールバック関数の基本的な書き方と使用法の紹介: Java プログラミングでは、コールバック関数は一般的なプログラミング パターンです。コールバック関数を通じて、メソッドをパラメータとして別のメソッドに渡し、それによってメソッドの間接的な呼び出しを実現できます。コールバック関数の使用は、イベント駆動型、非同期プログラミング、インターフェイス実装などのシナリオで非常に一般的です。この記事では、Java コールバック関数の基本的な書き方と使い方を紹介し、具体的なコード例を示します。 1. コールバック関数の定義 コールバック関数は、パラメータとして使用できる特殊な関数です。

MyBatisでの「未満」記号の書き方を詳しく解説 MyBatisはJava開発で広く使われている優れた永続層フレームワークです。データベース操作に MyBatis を使用するプロセスでは、しばしば小なり記号 (

USDT (テザー) は法定通貨に固定された暗号通貨で、米ドルとの比率は 1:1 です。 USDT は最も人気のあるステーブルコインの 1 つとして、世界中の暗号通貨取引で広く使用されています。 USDTの購入または取引に興味のあるユーザーにとって、信頼性が高く安全な取引プラットフォームを選択することが重要です。以下は、最適なプラットフォームを選択するのに役立つ、USDT 取引プラットフォーム ソフトウェア アプリのトップ 10 のランキングです。 1. Binance Binance は、幅広いユーザーベースと多様な取引種類を備えた世界最大の暗号通貨取引プラットフォームの 1 つです。人気の USDT 取引プラットフォームとして、Binance はユーザーの取引の安全性と利便性を確保するために設計されたさまざまな取引ツールと機能を提供します。 2.フォビG

独占公開! Snapdragonプロセッサの最新ランキング スマートフォンなどのモバイル機器の急速な発展に伴い、モバイル機器のコアチップであるプロセッサも常に進化し、アップグレードされています。クアルコムの Snapdragon プロセッサは、市場で最も人気のあるプロセッサの 1 つとして大きな注目を集めています。 Snapdragon プロセッサは、その優れたパフォーマンス、消費電力制御、高い統合性により、モバイル デバイス プロセッサ市場で常に地位を占めてきました。では、数あるSnapdragonプロセッサの中で、どれが一番優れているのでしょうか?この記事では、Snapdragon プロセッサの秘密を明らかにします。

Vue 統計グラフのランキングおよび比較機能は、データ視覚化の分野で実装されており、統計グラフはデータを直感的かつ明確に表示する方法です。人気のあるフロントエンド フレームワークとして、Vue はさまざまなチャートを実装するための豊富なツールとコンポーネントを提供します。この記事では、Vueを使って統計グラフのランキングや比較機能を実装する方法を紹介します。始める前に、Vue と関連するチャート ライブラリをインストールする必要があります。豊富な種類のグラフと対話型関数を提供するグラフ作成ライブラリとして Chart.js を使用します。 C は次のコマンドでインストールできます。
