【发布时间】:2014-08-08 14:02:58
【问题描述】:
我想为我的网站构建一个搜索引擎。我的数据库表列表如下:
-
d_name:我需要搜索两列。 -
em:我需要在一个列上搜索。 -
seri:我需要在一个列上搜索。 -
topics:我需要在一个列上搜索。 - 许多其他表,它们的数量是动态的,列表包含在
d_name表的列中。我需要在这些表中的每一个上搜索 两个 列。
由于结果数量可能很大,所以我也需要进行分页。
据我所知,我应该使用UNION 以便在多个表上使用搜索分页,但首先,列数应该相同,但这里不是,而且我的表数也是动态的。
另一方面,如果我尝试使用SHOW TABLES,它还会搜索一些包含我的私人信息的其他表格。
这是我到目前为止所做的:
$query = "(SELECT d_name, doc, db_name AS d FROM d_name WHERE d_name LIKE '%" .
$keyword . "%' OR title LIKE '%" . $keyword ."%')
UNION
(SELECT em_name, db_name AS em FROM em WHERE em_name LIKE '%" .
$keyword . "%')
UNION
(SELECT name AS topic FROM topics WHERE name LIKE '%" .
$keyword . "%')
UNION
(SELECT seri_name, db_name AS seri FROM seri WHERE seri_name LIKE '%" .
$keyword . "%')";
但是UNION 不起作用!有人知道我该怎么办吗?
【问题讨论】:
-
你有没有尝试过同样的事情?请先开始尝试
-
至少显示到目前为止你做了什么。当您在做某事时遇到问题时,Stackoverflow 会为您提供帮助。
-
你是这个意思吗?