1
讓我們假設我有一個像下面是否有可能計算mysql中結構匹配的數目?
$query_search = "SELECT * FROM `search` WHERE `title` LIKE '%$word%' OR `content` LIKE '%$word%'";
我需要通過比賽的數量訂購行的查詢?
是否有可能在這樣的數據庫結構中,或者我需要重新設計它?
非常感謝
讓我們假設我有一個像下面是否有可能計算mysql中結構匹配的數目?
$query_search = "SELECT * FROM `search` WHERE `title` LIKE '%$word%' OR `content` LIKE '%$word%'";
我需要通過比賽的數量訂購行的查詢?
是否有可能在這樣的數據庫結構中,或者我需要重新設計它?
非常感謝
語法可能有點偏差,但會像下面的工作?
ORDER BY
COALESCE(LENGTH(`title`)-LENGTH(REPLACE(`title`,'$word','')),0)+
COALESCE(LENGTH(`content`)-LENGTH(REPLACE(`content`,'$word','')),0)
DESC
可以通過(LEN(string)-Len(ReplacedString))/Len(Word)
來確定匹配的字符串中的數作爲Len(Word)
是常數,並且不會影響相對排序我已經離開它了在上面。
ORDER BY (CASE WHEN title REGEXP $word then 1 else 0 end +
CASE WHEN content REGEXP $word then 1 else 0 end) DESC