我对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/