Mysql #1241-在全文搜索中,操作数应包含1列

Mysql #1241-在全文搜索中,操作数应包含1列,mysql,database,Mysql,Database,所以子查询给我两列(ID和分数)是什么导致了这个问题。 我不知道如何在不删除显示记录顺序的情况下删除score的列。我想您需要根据post\u shadow表的分数来显示post,该表的id列与post id关联。您可以使用join重写查询,如下所示 SELECT * FROM POST WHERE ID IN (SELECT ID, MATCH(TITLE, CONTENT) AGAINST ('something lalala') AS score FROM POST_S

所以子查询给我两列(ID和分数)是什么导致了这个问题。
我不知道如何在不删除显示记录顺序的情况下删除score的列。

我想您需要根据post\u shadow表的分数来显示post,该表的id列与post id关联。您可以使用join重写查询,如下所示

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)

如果存在一对多关系b/w post和post\u shadow,则可以使用整个表达式in order by子句对结果进行相应排序,然后将选择部分更改为
select DISTINCT p.*。

否。。。它不是复制品
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