2012-03-22 46 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%'; 
相關問題