как фильтровать данные mysql по первым буквам - PullRequest
0 голосов
/ 22 марта 2012

У меня есть запрос, который я хочу отфильтровать по первым буквам. как

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

Я хочу, чтобы это отфильтровывало имя с помощью буквы. как фильтрация с «а» вернет имена, начинающиеся только с «а». Кто-нибудь может показать мне пример того, что добавить в этот запрос, чтобы получить результаты только с определенной буквой.

Любая помощь будет очень ценится. Спасибо

Проблема решена. Спасибо СергиоТуленцеву.

Ответы [ 4 ]

1 голос
/ 22 марта 2012

Попробуйте это:

SELECT `id`, `name`, `uri` FROM `categ` WHERE `active` = 1 AND `parent`='$iParentId' AND `name` LIKE 'a%';
1 голос
/ 22 марта 2012

Под сортировкой вы подразумеваете что-то вроде:


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 голосов
/ 22 марта 2012

Как отмечено в великом комментарии Серхио, то, что вы, похоже, ищете после, называется фильтрацией.Не сортируется:

SELECT `id`, `name`, `uri` 
FROM `categ` 
WHERE `active` = 1 AND `parent`='$iParentId' AND `name` LIKE 'a%'
0 голосов
/ 22 марта 2012

Если вы просто хотите отсортировать определенные строки, начинающиеся с%, используйте запрос ниже.Это, безусловно, поможет вам.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...