как уменьшить количество запросов (нужен приблизительный алгоритм)

lanka

Новичок
как уменьшить количество запросов (нужен приблизительный алгоритм)

Имеется алфавитный список товаров. Отсортированный по буквам. Букв у нас много (русские и английские). На некоторые буквы ничего не называется, поэтому списки пустые.
Необходимо показывать алфавит-индекс так, чтобы те буквы, где пустые списки, не являлись ссылками.

Вопрос:
Как сформировать такой список, не делая ~50+ (сколько там у нас букв?) запросов типа
[sql]select count(*) from tbl where name like '(letter)%'[/sql]
и можно ли так вообще сделать?

(я почему-то сегодня очень туплю с этой всей революцией, не пинайте, если решение очевидно плз)
 

iliah

Новичок
одним запросом можно так
SELECT DISTINCT (SUBSTRING( name, 1, 1 )) FROM tbl
 

Profic

just Profic (PHP5 BetaTeam)
1) [sql]select left(name, 0, 1) as ltr, count(name) ltrs from tbl group by ltr order by ltr;[/sql]
запрос примерный, потому не гарантирую что copy/paste заработает.
2) завести отдельное поле, в котором хранить первую букву.
 

lanka

Новичок
все, все, спасибо большое. как революции плохо на мозги влияют однако, даже в мануал смотреть лень было. стыдно, да.

substring и distinct помогли без проблем. с небольшими не очень существенными уточнениями для цифр (которые считаются все одной буквой, но являются разными)
можно больше не советовать :)
 

Vasya

Guest
Я сделал так:
[SQL]SELECT
DISTINCT(SUBSTRING(UPPER(m.name),1,1)) AS abc
FROM table_name AS m[/SQL]
Практически как iliah, только приведя буквы к верхнему регистру...
 
Сверху