目次
回复内容:

求正确SQL的写法。

Jun 06, 2016 pm 08:13 PM
mysql php

1.问题:我一直不清楚一个SQL算出一个特定结果的写法,想向大神请教

2.代码:

<code>SELECT tb.*,tbc.`comment` 
from blog_tinyblog AS tb,blog_tbcomment AS tbc 
where tb.user_id=tbc.user_id AND                    
tb.num=tbc.now_num
group by tbc.num_tiny_blog
</code>
ログイン後にコピー
ログイン後にコピー

我写的SQL是这样的,结果如图:求正确SQL的写法。

可这并不是我想要的结果,我希望去除重复,将comment存储为一个数组,成为只有一条结果的形式,请大神赤脚。也许可能会说用 distinct,但是不行
目的:我想写个微博评论系统 【现在是想显示出每条微博对应的评论】
求正确SQL的写法。

求正确SQL的写法。

求正确SQL的写法。

回复内容:

1.问题:我一直不清楚一个SQL算出一个特定结果的写法,想向大神请教

2.代码:

<code>SELECT tb.*,tbc.`comment` 
from blog_tinyblog AS tb,blog_tbcomment AS tbc 
where tb.user_id=tbc.user_id AND                    
tb.num=tbc.now_num
group by tbc.num_tiny_blog
</code>
ログイン後にコピー
ログイン後にコピー

我写的SQL是这样的,结果如图:求正确SQL的写法。

可这并不是我想要的结果,我希望去除重复,将comment存储为一个数组,成为只有一条结果的形式,请大神赤脚。也许可能会说用 distinct,但是不行
目的:我想写个微博评论系统 【现在是想显示出每条微博对应的评论】
求正确SQL的写法。

求正确SQL的写法。

求正确SQL的写法。

我来打击一下你:

  1. 你的数据库设计有些问题。建议在做东西的时候将mysql相关的书看一下。(关联用num?)

  2. GROUP BY的用法

  3. sql语句查询的时候大写会提高一丝丝效率,但是你这样关键字大小写混合就不要用了

  4. select tb.*,tbc.comment
    from blog_tinyblog as tb,blog_tbcomment as tbc
    where tb.num=tbc.num_tiny_blog

  5. 如果说上面的这些都能够忍受的话,那我就只能拿你问问题的格式来说事儿了 排版乱,逻辑乱 而且你还用图片,难道让我们敲上去试试?

大部分ORM一般有两种方式解决此类问题:

  1. 采用的 Lazy Load 方式,其实原理很简单:就是取两次,第一次取blog,第二次取blog对应的comment,只不过第二次取的操作延迟执行。

  2. 第二种就是题主这种一次查询的方式,只是ORM会根据查询的结果映射成你想要的那种形式(单个Blog对象中包含对应的Comment列表)。

所以综上,如果题主正在使用一种ORM工具,一般都包含这两种方式的处理;如果没有使用任何ORM,那题主需要自己实现一个对应的算法(其实就是一个类似reduce的算法)。

  1. 我没看懂你的意思。

  2. 你想要做什么。

  3. 首先你这全链接查询一般是没必要的。

  4. 再者没有聚集函数你用分组没有什么意义。

最佳方案是只获取微博和评论数就行了,具体的评论可以用ajax去取,没必要一次取出来,这样压力比较大。
如果你一定要一次取出来可以考虑group_concat这个函数,具体去查mysql手册,但是不推荐,如果评论很多的话这个效率会非常低甚至产生错误。

此外你的表设计也不合理。比如第几条微博,第几条评论,无评论 这三种注释代表的字段根本没用,用户删微博或者删评论的时候你也要在多条记录上维护相应的数据,麻烦死了。微博表有一个total_comments字段就足够了。至于到底是第几条,显示的时候自然就知道了,序号肯定是 (页码-1)*每页显示的记录数 + 当前页的第几行,所以没必要放在数据库里面。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの現在のステータス:Web開発動向を見てください PHPの現在のステータス:Web開発動向を見てください Apr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

PHP:多くのウェブサイトの基礎 PHP:多くのウェブサイトの基礎 Apr 13, 2025 am 12:07 AM

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHP対その他の言語:比較 PHP対その他の言語:比較 Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHP対Python:コア機能と機能 PHP対Python:コア機能と機能 Apr 13, 2025 am 12:16 AM

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

See all articles