我对SQL还是很陌生,希望有人可以帮助我找到实现以下功能的查询:

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

表结构如下

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


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


字1-第1页
第1页-第2页
第2页-第1页
第2页-第2页
第3页-第3页


我从搜索框中得到一个查询,并将其拆分为关键字。

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

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

有人可以解释一下如何创建一个SQL查询来做到这一点吗?

谢谢!

最佳答案

如果我能理解您的设置,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

关于php - 如何获取包含一个或多个关键字的页面列表-MySQL和PHP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27540005/

10-16 23:10