如何在MYSQL中按字母顺序过滤记录

时间:2014-03-18 06:10:44

标签: php mysql

我有搜索表单,用户输入搜索记录。 有3个字段Firm NameCityCountry, 当用户键入公司名称时,它会根据公司名称以及CityCountry显示结果。

这是我的查询:

Select `firm_name`, `address1`, `address2`, 
    `address3`, `address4`, `cityname`, `phone1` 
from `firms_detail` 
WHERE `firm_name` LIKE '%$firmname%' 
    AND `cityname` LIKE '%$firmcity%' 
    AND `countryname` LIKE '%$firmcountry%'

现在我已按字母顺序在搜索表单搜索中添加字段,如果用户选择A或C之类的Alphadate并单击“搜索”按钮,那么它应该是以A还是C开头的公司名称记录?

我如何更改查询?或者我应该为它写单独的查询?

5 个答案:

答案 0 :(得分:0)

我认为这就是你所追求的目标:

`firm_name` LIKE '$Alphadate%$firmname%' 

Select `firm_name`, `address1`, `address2`, `address3`, `address4`, `cityname`, `phone1` 
from `firms_detail` 
WHERE `firm_name` LIKE '%$firmname%' 
      AND `cityname` LIKE '%$firmcity%' 
      AND `countryname` LIKE '%$firmcountry%'
      AND  `firm_name` LIKE '$Alphadate%' 
ORDER BY `firm_name`

答案 1 :(得分:0)

您可以从数据库中获取结果并通过它们进行过滤(这看起来有点奇怪)。

否则,您必须在数据库记录上执行正则表达式。

您应该告诉您的查询搜索firmname等于用'C'加注星标的内容或用户输入的任何其他字母的记录。

因此我们有一个SELECT语句:

SELECT * FROM tableName

然后其余部分:

WHERE firmname regexp '^C'

作为完整陈述:

SELECT * FROM firmname WHERE firmname regexp '^C'

此处的密钥更改为^,这是与字符串开头匹配的正则表达式。

答案 2 :(得分:0)

Select `firm_name`, `address1`, `address2`, 
    `address3`, `address4`, `cityname`, `phone1` 
from `firms_detail` 
WHERE `firm_name` LIKE '%$firmname%' 
    AND `cityname` LIKE '%$firmcity%' 
    AND `countryname` LIKE '%$firmcountry%'
order by firm_name 

Use order by to order the data based on input.

答案 3 :(得分:0)

您只需使用以下查询即可按字母顺序获取结果:

选择firm_nameaddress1address2,     address3address4citynamephone1 来自firms_detail firm_name LIKE'%$ firmname%'     和cityname LIKE'%$ firmcity%'     和countryname LIKE'%$ firmcountry%' 由firm_name订购 如果您想使用firm_name等字母顺序,具体取决于您想要按字母顺序使用的内容。那就是它。

答案 4 :(得分:0)

只需在查询结尾添加order by firm_name,cityname,countryname