如何用首字母过滤mysql数据



我有一个查询,我想按首字母进行筛选。像

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

我想用一个字母来过滤这个名字。就像用"a"过滤一样,会返回仅以"a"开头的名称。有人能给我举一个例子,说明在这个查询中添加什么,以便只使用特定的字母来获得结果吗。

任何帮助都将不胜感激。感谢

问题解决了。感谢SergioTulentsev。

所谓排序,你的意思是:


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

或者,如果你想过滤,那么使用:

SELECT"id"、"name"、"uri"FROM"categor"WHERE"active"=1 AND"parent"="$iParentId"AND name LIKE"a%"

试试这个:

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

正如Sergio的精彩评论所提到的,您所追求的是所谓的过滤。未分拣:

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

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

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

最新更新