SELECT * FROM POST WHERE ID IN
(SELECT ID, MATCH(TITLE, CONTENT) AGAINST ('something lalala') AS score
FROM POST_SHADOW WHERE MATCH(TITLE, CONTENT) AGAINST ('something lalala')
ORDER BY score DESC)
所以子查询给我2列(ID和得分)导致问题的原因。 我不知道删除得分的列如何删除显示记录的顺序。
答案 0 :(得分:0)
我猜你需要根据post_shadow表的分数显示帖子,其id列与post id相关联,你可以使用join重写你的查询,如下所示
SELECT
p.*
FROM
POST
JOIN POST_SHADOW ps
ON (p.ID = ps.ID)
WHERE MATCH(ps.TITLE, ps.CONTENT) AGAINST ('something lalala')
ORDER BY MATCH(ps.TITLE, ps.CONTENT) AGAINST ('something lalala') DESC
您可以使用order by子句中的整个表达式来相应地对结果进行排序,如果有一对多的关系b / w post和post_shadow然后将您的选择部分更改为SELECT DISTINCT p.* ...