次の SQL ステートメントがあります。
SELECT
g.*,
(
MATCH (g.GameTitle) AGAINST ('call of duty')
OR g.GameTitle SOUNDS LIKE 'call of duty'
)
AS MatchValue,
p.id AS platformid,
p.alias AS PlatformAlias,
p.name,
p.icon
FROM
games AS g,
platforms AS p
WHERE
(
(
MATCH (g.GameTitle) AGAINST ('call of duty')
OR g.GameTitle SOUNDS LIKE 'call of duty'
)
OR
(
MATCH (g.Alternates) AGAINST ('call of duty')
OR g.Alternates SOUNDS LIKE 'call of duty'
)
)
AND g.Platform = p.id
ORDER BY MatchValue DESC
フルテキスト インデックスと照合すると正しい結果セットが返されますが、報告される「MatchValue」はブール型 (0 または 1) のみです。
ステートメントの 5 行目を削除すると、次のようになります。
OR g.GameTitle SOUNDS LIKE 'call of duty'
約 5.23 から 15.56 の範囲の適切な一致値が得られますが、「代替」との一致時に一部の機能が失われます。
私はSQLが得意ではなく、これだけ機能させるのに数日かかりました...
結果が適切に並べられるように、5 行目と 6 行目でブール値以外の一致値を返す方法はありますか?
前もって感謝します ;)