1

我正在尝试为网站开发搜索页面,但无法提出单个查询。

这是这十个表及其字段的列表

  1. tmp_auction_auto

    id 订单 类别 制造商 型号 价格 price_type 位置 年份 run_type 门 安全气囊 齿轮发动机 马力气缸 驱动类型 燃油颜色 abs 电子窗口 climatcontrol 磁盘 舱口板 电脑警报 右转向 turbo parkcontrol 调节器 皮革沙龙 导航 中控锁 椅子暖水力学 无价格 租金交换 海关 清关状态 其他联系方式

  2. tmp_auction_estate id 订单类型 交易价格 price_type price_sqm noprice 城市地址 面积 高度 维修条件 项目目的地 土地 阳台 mansard 会议楼梯_总楼梯 房间 卧室 阳台 sanitary_arr 凉廊 壁炉 空调 车库 停车场 土地_目的地建筑物 distance_central_street distance_tbilisi 储藏室 按摩浴缸 浴室 淋浴 桑拿 家具 技术 电话 互联网 发电机 游泳池 商务中心 吃 网络库存 衣柜 电梯 燃气 热水 加热 对讲 有线电视 报警器 系统入口 安全窗口 警卫 安全 双工 三重 卫星厨房 陈列柜 土地_铁路土地_电力土地_燃气土地_水土地_排水状况 其他联系方式

  3. tmp_auction_other id 订单标题 price price_type noprice info 联系方式

  4. tmp_branch id lang 标题内容 xy
  5. tmp_comments id reply_id 路径 用户名 电子邮件标题 内容 喜欢 不喜欢 时间 管理员
  6. tmp_news id lang 标题 内容 日期

  7. tmp_pages id lang 标题 内容日期

  8. tmp_polls id 名称 问题 答案 ip

  9. tmp_presentation id lang 标题顺序

  10. tmp_sitemap id 父语言标题链接顺序

我知道我可以以任何顺序为每个表编写多个查询(不好的做法),然后将其组合到 PHP 数组中进行输出,但我更需要一种专业的方法来处理这个主题。

PS 我不想使用 memcache、solr、sphinxs 和这样的库(服务器不支持这些)

  • 我还将感谢其他搜索建议,例如内容搜索等(网站是用 php 以 mvc 模式编写的,带有 url 重写并依赖于 mysql 数据库)
4

1 回答 1

1
I guess you can join these tables and create a view into which the data obtained fom the joined tables can be saved. Now the search must be conducted on this view which will speed up the search.
For eg.
mysql> SELECT CONCAT(UPPER(supplier_name), ' ', supplier_address) FROM suppliers;
+-----------------------------------------------------+
| CONCAT(UPPER(supplier_name), ' ', supplier_address) |
+-----------------------------------------------------+
| MICROSOFT 1 Microsoft Way                           |
| APPLE, INC. 1 Infinate Loop                         |
| EASYTECH 100 Beltway Drive                          |
| WILDTECH 100 Hard Drive                             |
| HEWLETT PACKARD 100 Printer Expressway              |
+-----------------------------------------------------+
CREATE VIEW suppformat AS 
SELECT CONCAT(UPPER(supplier_name), ' ', supplier_address) FROM suppliers;

mysql> SELECT * FROM suppformat;
+-----------------------------------------------------+
| CONCAT(UPPER(supplier_name), ' ', supplier_address) |
+-----------------------------------------------------+
| MICROSOFT 1 Microsoft Way                           |
| APPLE, INC. 1 Infinate Loop                         |
| EASYTECH 100 Beltway Drive                          |
| WILDTECH 100 Hard Drive                             |
| HEWLETT PACKARD 100 Printer Expressway              |
+-----------------------------------------------------+


Please check this link which will give you some idea of views
[http://www.techotopia.com/index.php/An_Introduction_to_MySQL_Views][1]


  [1]: http://www.techotopia.com/index.php/An_Introduction_to_MySQL_Views
于 2012-12-14T12:45:39.133 回答