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是这样的,结果如图:
可这并不是我想要的结果,我希望去除重复,将comment存储为一个数组,成为只有一条结果的形式,请大神赤脚。也许可能会说用 distinct,但是不行
目的:我想写个微博评论系统 【现在是想显示出每条微博对应的评论】
回复内容:
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是这样的,结果如图:
可这并不是我想要的结果,我希望去除重复,将comment存储为一个数组,成为只有一条结果的形式,请大神赤脚。也许可能会说用 distinct,但是不行
目的:我想写个微博评论系统 【现在是想显示出每条微博对应的评论】
我来打击一下你:
你的数据库设计有些问题。建议在做东西的时候将mysql相关的书看一下。(关联用num?)
GROUP BY的用法
sql语句查询的时候大写会提高一丝丝效率,但是你这样关键字大小写混合就不要用了
select tb.*,tbc.comment
from blog_tinyblog as tb,blog_tbcomment as tbc
where tb.num=tbc.num_tiny_blog如果说上面的这些都能够忍受的话,那我就只能拿你问问题的格式来说事儿了 排版乱,逻辑乱 而且你还用图片,难道让我们敲上去试试?
大部分ORM一般有两种方式解决此类问题:
采用的
Lazy Load
方式,其实原理很简单:就是取两次,第一次取blog,第二次取blog对应的comment,只不过第二次取的操作延迟执行。第二种就是题主这种一次查询的方式,只是ORM会根据查询的结果映射成你想要的那种形式(单个Blog对象中包含对应的Comment列表)。
所以综上,如果题主正在使用一种ORM工具,一般都包含这两种方式的处理;如果没有使用任何ORM,那题主需要自己实现一个对应的算法(其实就是一个类似reduce的算法)。
我没看懂你的意思。
你想要做什么。
首先你这全链接查询一般是没必要的。
再者没有聚集函数你用分组没有什么意义。
最佳方案是只获取微博和评论数就行了,具体的评论可以用ajax去取,没必要一次取出来,这样压力比较大。
如果你一定要一次取出来可以考虑group_concat这个函数,具体去查mysql手册,但是不推荐,如果评论很多的话这个效率会非常低甚至产生错误。
此外你的表设计也不合理。比如第几条微博,第几条评论,无评论 这三种注释代表的字段根本没用,用户删微博或者删评论的时候你也要在多条记录上维护相应的数据,麻烦死了。微博表有一个total_comments字段就足够了。至于到底是第几条,显示的时候自然就知道了,序号肯定是 (页码-1)*每页显示的记录数 + 当前页的第几行,所以没必要放在数据库里面。

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境