如何用首字母过滤mysql数据

时间:2012-03-22 07:47:26

标签: mysql sorting

我有一个查询,我想用第一个字母过滤。像

SELECT `id`, `name`, `uri` FROM `categ` WHERE `active` = 1 AND `parent`='$iParentId'

我希望这个用字母过滤名字。比如用“a”过滤它将返回仅以“a”开头的名称。任何人都可以向我展示一个关于在此查询中添加什么的示例,以便仅使用特定字母获取结果。

非常感谢任何帮助。感谢

问题解决了。感谢SergioTulentsev。

4 个答案:

答案 0 :(得分:1)

通过排序,你的意思是:


SELECT `id`, `name`, `uri` FROM `categ` WHERE `active` = 1 AND `parent`='$iParentId'
ORDER BY SUBSTRING(name, 0, 1) ASC

如果您想过滤,请使用:

SELECT `id`, `name`, `uri` FROM `categ` WHERE `active` = 1 AND `parent`='$iParentId'
AND name LIKE 'a%'

答案 1 :(得分:1)

试试这个:

SELECT `id`, `name`, `uri` FROM `categ` WHERE `active` = 1 AND `parent`='$iParentId' AND `name` LIKE 'a%';

答案 2 :(得分:0)

如果您只想对以%开头的特定行进行排序,请使用以下查询。它一定会帮到你。

SELECT `id`, `name`, `uri` FROM `categ` WHERE `active` = 1 AND `parent`='$iParentId' ORDER BY CASE WHEN `name` LIKE 'a%' THEN 0 ELSE ~id END ASC

答案 3 :(得分:0)

正如塞尔吉奥的伟大评论所提到的,你似乎追求的是过滤。没有分拣:

SELECT `id`, `name`, `uri` 
FROM `categ` 
WHERE `active` = 1 AND `parent`='$iParentId' AND `name` LIKE 'a%'