MySQL: Montar o alfabeto com as iniciais de uma coluna
Aprenda a montar o alfabeto com as inicias de uma coluna do seu banco de dados.
Vamos usar uma tabela de exemplo, chamada “moveis_categorias”.
+-------------------+ | Nome da Tabela | +-------------------+ | moveis_categorias | +-------------------+ mysql> SELECT * FROM moveis_categorias; +----+-----------+ | id | descricao | +----+-----------+ | 1 | Armários | | 2 | Bancos | | 3 | Cadeiras | | 4 | Cômodas | | 5 | Espelhos | | 6 | Mesas | | 7 | Sofás | | 8 | Poltronas | | 9 | Racks | +----+-----------+ mysql> SELECT DISTINCT(SUBSTR(descricao,1,1)) as letra FROM moveis_categorias ORDER BY letra; +-------+ | letra | +-------+ | A | | B | | C | | E | | M | | P | | R | | S | +-------+ |
Explicação:
DISTINCT(): utilizado para limpar os valores duplicados (Cadeiras/Cômodas).
SUBSTR(): utilizado para pegar o primeiro caracter (letra inicial)
Ideia de uso:
Você pode montar links que redirecionarão para uma página (moveis.php) que contenha, somente, os móveis com a letra selecionada.
<? WHILE( expr ){ // <a href="?letra=A">A</a> echo "<a href='?letra={$letra}'>{$letra}</a>"; } ?> |
moveis.php – página que conterá os móveis correspondente a letra selecionada.
// atribui o valor passado via URL a variável $letra = $_GET['letra']; // A // select para trazer somente os móveis que iniciam com a letra pressionada mysql> SELECT * FROM moveis WHERE titulo_movel LIKE '$letra%'; |
Ficou com alguma dúvida ou tem uma outra ideia de uso, deixe nos comentários.