Php 搜索具有不同列的多个表
我想为我的网站建立一个搜索引擎。我的数据库表列表如下:Php 搜索具有不同列的多个表,php,mysql,database,search,Php,Mysql,Database,Search,我想为我的网站建立一个搜索引擎。我的数据库表列表如下: d_name:我需要搜索两列 em:我需要搜索一列 seri:我需要搜索一列 主题:我需要搜索一列 许多其他表格的数量是动态的,列表包含在d_name表格的一列中。我需要在每个表上搜索两列 由于结果的数量可能很大,我也需要进行分页。 正如我所知,为了在多个表上使用分页搜索,我应该使用UNION,但首先,列的数量应该相同,但这里不是,而且我的表的数量是动态的 另一方面,如果我尝试使用SHOW TABLES,它也会搜索一些包含我的私人信息的其他
d_name
:我需要搜索两列em
:我需要搜索一列seri
:我需要搜索一列主题
:我需要搜索一列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 . "%')";
但是,
联合
不起作用!有人知道我该怎么做吗?如果执行联合查询,则所有单独的查询在结果中应具有相同的列数。您可以使用固定值,如NULL
、'
或'not provided'
来填充其他表格
Examlpe查询()
你有没有试着在同一个平台上做点什么?请首先开始尝试,至少展示一下你到目前为止做了什么。Stackoverflow会在你做某事时遇到问题时提供帮助。这是你的意思吗?
SELECT column_1, column_2 FROM i_have_two_columns
UNION
SELECT column_1, NULL FROM i_have_only_one_column