Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: spis alfabetyczny
Forum PHP.pl > Forum > Bazy danych > MySQL
gdaq
Problem polega na tym iz potrzebuje zrobic spis alfabetyczny wg paru liter np.
A-F wyswietla mi rekordy zaczynajace sie na litery A,B,C,D,E,F etc.
Wiem ze mozna zrobic to przy uzyciu LIKE i ||, ale czy nie zna ktos wydajniejszego sposobu? Myslalem jeszcze o wybraniu rekordow po stronie php uzywajac substr ale nie wiem czy to bedize szybsze.



Gdaq
plewa
Wg mnie rozwiązanie LIKE jest chyba najszybszym rozwiązaniem. Autorzy stworzyli funkcje LIKE, by była ona szybka, sprawna i wydajna.
popbart
LIKE będzie się mulił jeżeli nie będziesz miał index'u na tym polu winksmiley.jpg
gdaq
Wymyslilem cos takiego
  1. SELECT *
  2. FROM tabela WHERE FIELD(lower(substring(nazwa,1,1)),'a','b','c') IN (1,2,3)

Tylko ze roznice miedzy moim zapytaniem a likiem widac dopiero przy okolo 10-12 wartosciach (testowalem na tabeli zawierajacej 5500 rekordow) wiec chyba zostanie LIKE


Gdaq
plewa
Pewnie. Im prostsze tym szybsze ! smile.gif
gdaq
tez tak mysle:) dlatego poprzestaen chyba na like ale wiem ze w MSSQL Server 2000 czytalem o czyms wydajniejszym cego uzywanie nawet zaleca microsoft.



Gdaq
spenalzo
RLIKE - wersja LIKE obslujgujaca wyrazenai regularne.
sobstel
a moze

  1. WHERE LEFT(col,1)>='A' AND LEFT(col,1)<='F'


?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.