如何获取包含一个或多个关键字的页面列表 - MySQL和PHP

时间:2014-12-18 05:49:40

标签: php mysql

我对SQL很陌生,我希望有人能帮助我找到一个查询来实现以下功能:

我有两个数据库表。一个叫做页面,是我网站上的一个页面列表。另一个表称为关键字,包含关键字以及可在其中找到的相应页面。

表结构如下

Page                       Keywords
+-------+------+           +-------+-------+
| Pg_ID | URL  |           | Word  | Pg_ID |
+-------+------+           +-------+-------+

例如,可以在关键字表中找到以下条目:

  • word1 - page1
  • word1 - page2
  • word2 - page1
  • word2 - page2
  • word3 - page3

我从搜索框中获取查询并将其拆分为关键字。

例如,搜索查询中的关键字为:word1,word2

如何返回包含这些关键字的网页列表,在此示例中为page1,page2?

有人可以解释我如何创建SQL查询来执行此操作吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果我能理解你的设置,With the Following SQLFiddle我相信我已经得到了你需要做的事情。没有列名我只是假设并做了一些。

SQL数据

CREATE TABLE pages(
  page_id INT NOT NULL DEFAULT 1,
  page_keyword VARCHAR(50) NOT NULL
  );

INSERT INTO pages VALUES (1,'cool'),
  (1,'awesome'),
  (2,'lame'),
  (2,'waffle'),
  (3,'holy'),
  (3,'pope'),
  (3,'waffle');

查询

SELECT * FROM pages WHERE page_keyword = 'waffle';

收到的数据

PAGE_ID       PAGE_KEYWORD
2              waffle
3              waffle