0
我有這兩個表在這裏排序方式IN子句中有更多的匹配值的行
posts tags
[ id title ] [ pid tag ]
[ 1 X ] [ 1 php ]
[ 2 Y ] [ 1 pdo ]
[ 3 Z ] [ 2 php ]
[ 2 ajax ]
[ 3 pdo ]
,我現在將此查詢有關這兩個表
$query = "
SELECT a.title FROM posts a
INNER JOIN tags b ON a.id = b.pid
WHERE b.tag IN ($tags)
";
如果
$tags = [php, pdo];
我期望獲得更匹配的$tags
值的行因此訂單將是X->Y->Z
如果
$tags = [php, pdo, ajax]
我期望能獲得X->Y->Z
過,但在這兩個查詢的順序是不是這樣的話,那是由名稱或標記字母更像是有序的,我怎樣才能得到它由最高匹配的行排序,如果可能的話,唯一的行只有所有匹配的值。
'我希望能得到更匹配的值'你能解釋一下嗎? 「更匹配的價值」是什麼意思?比賽是一場比賽,它不能「匹配更多」......? – dognose
@dognose喜歡如果我'$ tags = [php,pdo]',因爲'title = x'有2個匹配'php,pdo',我預計它是所有返回的行中的第一個,那麼'title = y'只有'pdo'匹配,與'title = z'相同,因爲兩個匹配行的數量相同,我期望它們是隨機的或者由其他東西排序的。 – Axon