选择MySQL上具有项目的所有字符

时间:2013-07-28 00:32:00

标签: php mysql join

我有一个关于MySQL的表,称为带有2列的项:Id和Name。我想显示我的项目,按名称首字母过滤。为此,现在我正在使用此查询:

Select Id,Name from Items WHERE Name LIKE 'a%'

我有两个问题:

1)这是实现这一目标的最佳方法吗?

2)要创建过滤器视图,我想知道哪些字符至少有一个以它开头的项目名称。例如,我没有任何以“X”开头的项目名称。我怎么知道哪一个有一个查询?

由于

3 个答案:

答案 0 :(得分:1)

  1. 如果您有Name的索引,那么您的查询就可以了。

  2. 获取具有姓名的所有字符

    Select substr(Name, 1, 1) as starting_character
    from Items 
    group by starting_character
    order by starting_character
    

答案 1 :(得分:0)

您可以运行像...这样的大型OR查询。

 select * from Items where nobre like "A%" or nombre like "B%" or nombre like "C%" //etc etc

但是如果速度和表格大小是一个问题,我会创建另一个列,只需将字母值作为INT输入到该列中。有点像索引。

因此,当您插入任何新值时,只需编写函数代码以返回第一个字母的字母值,然后将其插入新列。

现在,您可以根据该整数查询列中的任何字母。

希望清楚地说出来,我不太善于解释事情......

答案 2 :(得分:0)

这将为您提供所有第一个字符 - 仅一次(因此为DISTINCT)

SELECT DISTINCT SUBSTR(Name,1,1) FROM Items ORDER BY SUBSTR(Name,1,1)

然后您可以使用它来创建过滤器。