php - 搜索关键字并应用过滤器

标签 php mysql

我遇到了一个我自己无法绕过的问题,这就是我发布这个问题的原因。还有很多其他帖子给了我一半的答案,但我真的不知道如何完成它。

我有 3 个表,其中包含有关广告的信息。一张表是“ad_names”,另一张表是“ad_locations”,最后一张表是“ad_details”。

Ad_Names has : ad_title, ad_description, ad_date_added
Ad_Locations has : ad_country, ad_region, ad_city
Ad_Details has : ad_price, ad_author, ad_active

基本上,我想对具有特定标题的广告应用位置和详细信息过滤器。

例如,我想在广告标题中搜索“食品”关键字,然后应用“仅来自堪萨斯州”或“仅来自堪萨斯州 + 价格高于 500 美元”等过滤器。我该怎么做?

最佳答案

首先您需要加入表格。你知道表上是否有外键吗?就像所有 3 个表上都有 Ad_ID 字段吗?如果表很大,您可能还需要对正在搜索的字段建立索引。一旦获得所有数据,您将使用 where 子句“过滤”它。

http://www.w3schools.com/sql/sql_where.asp

select * from ad_names as A 
join ad_location as L on A.key=L.key 
join ad_details as D on A.key=D.key
where A.ad_title like '%food%' and L.ad_region = 'Kansas' and D.ad_prics > 500;

根据数据库的设置方式,您可能会在那里得到笛卡尔结果,因此您必须查看您的连接。可能是左外连接限制了 on 语句中的连接而不是 where 中的连接。如果没有更多信息,很难说。

Join types

关于php - 搜索关键字并应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245528/

相关文章:

使用脚本进行 MySQL 身份验证,无需以纯文本形式提供密码

mysql - 使用 mysql 加载数据 infile 我得到 "incorrect integer value"

javascript - 正则表达式 HTML 或 PHP

javascript - AngularJS : Handling value with same input name

php - 按列对 MySQL 数据库进行排序

外部 .js 文件中的 PHP 语法问题

PHP PDO 更新表不工作

php - 单击按钮时在另一个页面上显示值,在PHP中,值存储在数据库中

php - 在空 WORDPRESS 上调用成员函数 insert()

基于mysql数学的查询