按一列与另一列的值完全相同的位置排序
Ordering by where one column is exactly the same value as another column
我需要根据一列与另一列的值完全相同的位置进行排序。有什么办法可以做到这一点?如果有,请告诉我。 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
我需要根据一列与另一列的值完全相同的位置进行排序。有什么办法可以做到这一点?如果有,请告诉我。 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