MySQL选择最佳相关查询

时间:2015-02-16 00:01:56

标签: mysql

$query1 = "select * from members where id = 5 LIMIT 1 "

结果

city : 002,eye : black , car: yes,  height : 180

会员表在这里:

|cityId |  eye  |car |height|           
|---------------|-----------|       
|001    |red    |yes | 180  |      
|002    |brown  |no  | 165  |    
|002    |black  |yes | 192  |     
|003    |green  |yes | 168  |     
|003    |brow   |no  | 180  |    
|004    |blue   |no  | 175  |
|005    |black  |no  | 177  |
|005    |black  |yes | 168  |

我必须从会员表中选择新的请求最佳与$ query1条款相关 我怎么能得到?

1 个答案:

答案 0 :(得分:0)

您需要确定要搜索的顺序以及哪个列具有优先级。 我假设您有一个前端方法,如PHP。 如果您使用表单将结果发布到脚本页面,那么

$cityId=$_POST['cityId'];
$eye=$_POST['eye'];
$car=$_POST['car'];
$height =$_POST['height'];

如果你知道你正在搜索的记录与查询匹配,你可以像这样搜索。

$query1 = "SELECT * FROM `members` WHERE `cityId`='$cityId' AND `eye`='$eye 'AND `car`='$car' AND `height`='$height'";

如果您想订购它们,您需要通过

指明要订购的字段
$query1 = "SELECT * FROM `members` WHERE `cityId`='$cityId' AND `eye`='$eye 'AND `car`='$car' AND `height`='$height'ORDER BY `cityId`DESC";

您搜索的字段越少,结果越少。我发现最好的方法是将搜索限制为两个字段,打印到屏幕,然后选择最相关的字段并从那里开始。您可以使用类似的搜索,但我再次发现您必须限制搜索字段的数量才能获得可用的结果 像查询示例

$query1 = "SELECT * FROM `members` WHERE `cityId`LIKE'%$cityId%'AND`eye`LIKE'%$eye%' ORDER BY `cityId`DESC"