【发布时间】:2014-06-21 14:10:37
【问题描述】:
我有 2 个完全一样的表:table1 和 table2,我需要执行相关的 table1,现在我正在使用 table1 进行以下查询。
select SQL_CALC_FOUND_ROWS
table1.slug as slugpost,
table1.titulo,
table1.id,
table1.id_usu,
table1.id_cat,
table1.slug,
table1.fecha,
table1.html,
table1.hit,
table1.etiquetas,
table1.status as table1tatus,
categorias.nombre,
categorias.slug as slugcategoria,
categorias.icon,
usuarios.id as idusuarios,
usuarios.usuario
from table1
LEFT JOIN usuarios
on table1.id_usu = usuarios.id
LEFT JOIN categorias on categorias.id=table1.id_cat
WHERE
MATCH(titulo, etiquetas, html) AGAINST ('".$query."')
limit 1,5;
查询工作正常,但如您所见,只需在 table1 上搜索即可。
Table1 保留我网站上的旧 table1(从 0 到 127000),table2 是新帖子的新表(从 127001 开始)。
编辑 我尝试使用 UNION 但我无法使其工作,MYSQL 说 找不到与列列表匹配的 FULLTEXT 索引。
SELECT SQL_CALC_FOUND_ROWS
t.slug as slugpost,
t.titulo,
t.id,
t.id_usu,
t.id_cat,
t.fecha,
t.html,
t.hit,
t.etiquetas,
t.status as table1tatus,
categorias.nombre,
categorias.slug as slugcategoria,
categorias.icon,
usuarios.id as idusuarios,
usuarios.usuario
FROM
(
SELECT table1.slug,table1.titulo,table1.id,table1.id_usu,table1.id_cat,table1.fecha,table1.html,table1.hit,table1.etiquetas,table1.status FROM table1
UNION
SELECT table2.slug,table2.titulo,table2.id,table2.id_usu,table2.id_cat,table2.fecha,table2.html,table2.hit,table2.etiquetas,table2.status FROM table2
) t
LEFT JOIN usuarios on t.id_usu = usuarios.id
LEFT JOIN categorias on categorias.id=t.id_cat
WHERE
MATCH(titulo, etiquetas, html) AGAINST ('dvdrip latino')
limit 1,5;
我也运行了以下命令
ALTER TABLE `table1` ADD FULLTEXT INDEX `test` (`title`, `tags`, `html`);
ALTER TABLE `table1` ADD FULLTEXT INDEX `test2` (`title`, `tags`, `html`);
【问题讨论】:
标签: mysql sql-server