我需要在一列与另一列的值完全相同的地方进行排序。有什么方法可以做到这一点吗?如果有,请告诉我。ORDER BY wordMatch = wordCount
SELECT * ,
( input LIKE '% i %') +
( input LIKE '% love %' ) +
( input LIKE '% you %' ) AS wordMatch,
( LENGTH( input ) - LENGTH( REPLACE( input, ' ', '' ) ) -1 ) AS wordCount
FROM allData
HAVING wordMatch > ( wordCount * 0.6666 )
AND wordCount > ( 3 * 0.6666 )
ORDER BY wordMatch = wordCount
LIMIT 50
如果你想先让最接近的匹配,那么使用 desc
:
order by (wordMatch = wordCount) desc
或者,你也可能想要差值的绝对值。
order by abs(wordMatch - wordCount)
我在找这样的东西。
ORDER BY wordMatch = wordCount DESC , wordCount DESC