2012-03-22 45 views
0

我有一个查询,我想过滤的第一个字母。像如何过滤第一个字母的mysql数据

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

我想要用一个字母过滤名称。比如用“a”过滤它将返回仅以“a”开始的名称。任何人都可以向我展示一个例子,说明在这个查询中要添加什么,以便只用特定的字母来获得结果。

任何帮助将非常感激。谢谢

问题解决了。感谢SergioTulentsev。

+0

'WHERE ... AND名字LIKE '百分比'' – 2012-03-22 07:49:12

+4

一个 “将返回只启动名称 ”“ 以分类整理”一个“” - 这不是排序,这是过滤。 – 2012-03-22 07:49:21

+0

哦!非常感谢你,并感谢你的过滤。我的错误 – Prashank 2012-03-22 07:52:31

回答

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 
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%' 
0

正如塞尔吉奥的伟大评论中提到的,你似乎被称为过滤之后。不sortering:

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

试试这个:

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