最近在學(xué)習(xí)MySQL,遇到了一個(gè)需求:查詢一篇文章中除了最小字?jǐn)?shù)的段落以外的全部?jī)?nèi)容。經(jīng)過(guò)查資料和研究,我最終寫出了如下的SQL語(yǔ)句:
SELECT * FROM article WHERE id = 123 AND LENGTH(content) >( SELECT MIN(LENGTH(content)) FROM ( SELECT content FROM article WHERE id = 123 ) AS temp )
以上SQL語(yǔ)句中,article
表是指我的文章表,其中id
字段是文章的唯一標(biāo)識(shí),content
字段是文章的內(nèi)容。
首先,我們需要使用WHERE
語(yǔ)句定位到我們需要查詢的文章,這里假設(shè)文章的id
為123
。接著,我們使用LENGTH
函數(shù)來(lái)計(jì)算每個(gè)段落的長(zhǎng)度,然后查找這些長(zhǎng)度中的最小值。這里需要注意的是,這個(gè)最小值是包括HTML標(biāo)記等無(wú)用內(nèi)容的,我們需要在查詢前將其過(guò)濾掉,以便得到真實(shí)的段落長(zhǎng)度。
為了過(guò)濾無(wú)用內(nèi)容,我使用了子查詢:SELECT content FROM article WHERE id = 123
,這個(gè)子查詢返回的是未過(guò)濾的全部段落內(nèi)容。接著,我將其作為臨時(shí)表temp
,計(jì)算出其各自段落長(zhǎng)度,并取最小值作為我們的過(guò)濾標(biāo)準(zhǔn)。
最后,我們使用WHERE
語(yǔ)句過(guò)濾掉段落長(zhǎng)度小于過(guò)濾標(biāo)準(zhǔn)的段落,并使用*
通配符查詢所有符合條件的字段。
這就是我查詢所有數(shù)據(jù)去掉最小的文章的SQL語(yǔ)句,希望能給你啟發(fā)!