【发布时间】:2010-08-22 20:10:22
【问题描述】:
您好,我正在尝试从加入的列中进行选择:
SELECT
A.idAd,
A.ads_in_Cat,
A.title,
A.currency,
A.price,
A.in_dpt,
A.description,
D.*,
S.*
FROM ads A
LEFT JOIN dept D ON D.id_dept = A.in_dpt
LEFT JOIN sub_cat_ad AS ON S.id_sub_cat = A.ads_in_Cat
WHERE MATCH(A.title, A.description) AGAINST(:searchTerm)
OR MATCH (S.sub_cat_name) AGAINST(:searchTerm)
有人可以告诉我为什么 MySQL 返回:1191 找不到与...中的列列表匹配的 FULLTEXT 索引,除非我使用 IN BOOLEAN MODE?
PS 表 S 为每个列定义了全文。 MySQL 5.1.49 版
【问题讨论】:
-
我注意到您在
A.title之后缺少一个逗号,但我怀疑这是问题的原因。 -
是的,这将以完全不同的方式使查询崩溃。我编辑并添加了逗号。
-
就此而言,您拥有
WHERE MATCH(A.titlee,而不是WHERE MATCH(A.title,。我认为这不是查询的直接复制和粘贴。如果可以的话,也许您应该将这个示例替换为真实示例的复制和粘贴? -
谢谢,是的,@Dan Breslau,这不是直接复制。
-
@Dan Breslau,我在布尔模式下使用时没有收到错误
标签: php sql mysql full-text-search