日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

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

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

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

$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++;

}

}

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

非常感謝任何專家的見解!

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

更新:

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

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

如果單級屬性按字母順序排列,我會更高興 .

總結(jié)

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

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