MySQL 在多个表中搜索

MySQL search In multiple tables

您好,我有 3 个表:cities、areas、sub_locations,我不知道用户在搜索哪个表,所以我想一次搜索所有表,而且我需要以某种方式表明结果返回的是地区、城市还是 sub_location。

表格结构:

Cities:
id int
city_name varChar

Areas:
id int
area_name varChar

Sub_locations:
id int
sub_location_name varChar

所以只需要在 city_name , area_name 和 sub_location_name

中搜索

我想使用全文 search.Also 我使用 Laravel 4 所以你可以在 Eloquent 中查询。请帮助,以前从未处理过这种逻辑。谢谢。

你可以试试

$keyword = $_POST['your_search_input_field'];

$query = "(SELECT city_name FROM Cities WHERE city_name LIKE '%" . 
       $keyword . "%') 
       UNION
       (SELECT area_name FROM Areas WHERE area_name LIKE '%" . 
       $keyword . "%') 
       UNION
       (SELECT sub_location_name FROM Sub_locations WHERE sub_location_name LIKE '%" . 
       $keyword . "%' )";

mysql_query($query);

使用这个

SELECT `city_name` as `area` ,'city' as type FROM `cities` where city_name 
'your like conditions'
union 
select `area_name` as `area`, 'area' as type from `areas` where 'your like conditions'
union
select `sub_location_name` as `area`, 'sublocation' as type where 'your like conditions'
from `Sub_locations` 

在这里您可以找到结果,并且还可以按类型列对 table 这些结果从中排序。