日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

mysql 对多列进行排序 分组,尝试从多列全文mysql搜索中对结果进行排序

發(fā)布時(shí)間:2025/3/20 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 对多列进行排序 分组,尝试从多列全文mysql搜索中对结果进行排序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我正在使用一個(gè)有10列的表 . 第一個(gè)是廣泛的類(lèi)別,接下來(lái)的9個(gè)概念隨著您的上升而變得更加具體 . 所有行都有一個(gè)類(lèi)別和至少1號(hào)屬性,但從那里可能是空白 .

我正在嘗試編寫(xiě)一個(gè)查詢(xún),命令關(guān)鍵字全文搜索結(jié)果首先按類(lèi)別中的結(jié)果數(shù)量分組,然后按可能的最高屬性排序 . 因此,具有30個(gè)實(shí)例的cat將在具有10個(gè)的實(shí)例之前出現(xiàn) . 但是在該類(lèi)別中,具有第9個(gè)屬性的所有結(jié)果將在第9列為空的結(jié)果之前位于頂部 .

以下是顯示我在哪里的兩個(gè)主要代碼:

$sql = "SELECT *,

MATCH (SubCat09Name) AGAINST ('".$keyword."') AS res9,

MATCH (SubCat08Name) AGAINST ('".$keyword."') AS res8,

MATCH (SubCat07Name) AGAINST ('".$keyword."') AS res7,

MATCH (SubCat06Name) AGAINST ('".$keyword."') AS res6,

MATCH (SubCat05Name) AGAINST ('".$keyword."') AS res5,

MATCH (SubCat04Name) AGAINST ('".$keyword."') AS res4,

MATCH (SubCat03Name) AGAINST ('".$keyword."') AS res3,

MATCH (SubCat02Name) AGAINST ('".$keyword."') AS res2,

MATCH (SubCat01Name) AGAINST ('".$keyword."') AS res1,

MATCH (Category) AGAINST ('".$keyword."') AS res15

FROM stufftaxonomy

WHERE

MATCH (SubCat09Name, SubCat08Name, SubCat07Name, SubCat06Name, SubCat05Name, SubCat04Name, SubCat03Name, SubCat02Name, SubCat01Name, Category) AGAINST ('".$keyword." IN BOOLEAN MODE')

ORDER BY res15 DESC, res9 DESC, res8 DESC, res7 DESC, res6 DESC, res5 DESC, res4 DESC, id DESC LIMIT 25000";

并且:

foreach($mvres as $res){

if(strlen($res->Category) > 1 || strlen($res->SubCat01Name) > 1 || strlen($res->SubCat02Name) > 1 || strlen($res->SubCat03Name) > 1 || strlen($res->SubCat04Name) > 1 || strlen($res->SubCat05Name) > 1 || strlen($res->SubCat06Name) > 1 || strlen($res->SubCat07Name) > 1 || strlen($res->SubCat08Name) > 1 || strlen($res->SubCat09Name) > 1){

if($catHead != $res->Category){$response .= '';}

if($catHead != $res->Category){$response .= 'id.'" class="categoryHead">'.$res->Category.' ';}

$response .= '';

$response .= 'id.'" class="taxID">id: id.'">'.$res->id.'';

if(strlen($res->SubCat01Name) > 0){$response .= ''.$res->Category.'';}

if(strlen($res->SubCat09Name) > 0){$response .= ' 09:'.$res->SubCat09Name.'';}

if(strlen($res->SubCat08Name) > 0){$response .= ' 08:'.$res->SubCat08Name.'';}

if(strlen($res->SubCat07Name) > 0){$response .= ' 07:'.$res->SubCat07Name.'';}

if(strlen($res->SubCat06Name) > 0){$response .= ' 06:'.$res->SubCat06Name.'';}

if(strlen($res->SubCat05Name) > 0){$response .= ' 05:'.$res->SubCat05Name.'';}

if(strlen($res->SubCat04Name) > 0){$response .= ' 04:'.$res->SubCat04Name.'';}

if(strlen($res->SubCat03Name) > 0){$response .= ' 03:'.$res->SubCat03Name.'';}

if(strlen($res->SubCat02Name) > 0){$response .= ' 02:'.$res->SubCat02Name.'';}

if(strlen($res->SubCat01Name) > 0){$response .= ' 01:'.$res->SubCat01Name.'';}

$response .= '';

$catHead = $res->Category;

if($catHead != $mvres[$i+1]->Category){$response .= '';}

$i++;

}

}

我知道這個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)太簡(jiǎn)陋了 . 這也是我提問(wèn)的一部分;是否值得中斷類(lèi)別表,并索引原始?它是84,000行,這就是我得到它的方式 .

非常感謝任何專(zhuān)家的見(jiàn)解!

另外,我發(fā)現(xiàn)在我的 $keyword 中添加 + 或 - 沒(méi)有所需的布爾效果 . 我也喜歡這樣工作......

更新:

好吧,我對(duì)以下內(nèi)容感到非常滿(mǎn)意:

SELECT * FROM stufftaxonomy

WHERE

MATCH (Category) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat01Name) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat02Name) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat03Name) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat04Name) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat05Name) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat06Name) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat07Name) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat08Name) AGAINST ('".$keyword."' IN BOOLEAN MODE) ||

MATCH (SubCat09Name) AGAINST ('".$keyword."' IN BOOLEAN MODE)

ORDER BY Category ASC,

length(SubCat09Name) + length(SubCat08Name) + length(SubCat07Name) + length(SubCat06Name) + length(SubCat05Name) + length(SubCat04Name) + length(SubCat03Name) + length(SubCat02Name) + length(SubCat01Name) DESC,

SubCat09Name ASC, SubCat08Name ASC, SubCat07Name ASC, SubCat06Name ASC, SubCat05Name ASC, SubCat04Name ASC, SubCat03Name ASC, SubCat02Name ASC, SubCat01Name ASC

LIMIT 25000

如果單級(jí)屬性按字母順序排列,我會(huì)更高興 .

總結(jié)

以上是生活随笔為你收集整理的mysql 对多列进行排序 分组,尝试从多列全文mysql搜索中对结果进行排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。