ugrás a tartalomhoz

idézőjelet rendezésnél ne vegye figyelembe

Jano · 2005. Feb. 16. (Sze), 11.53
Egy apró kérdés, abc sorrendbe rendezek címeket, és van ahol idézőjelben van az eleje, igy idezojel lesz az elso karakter és ezeket minden cim ele teszi. Hogyan lehetne megoldani, hogy az idezojelet ne vegye figyelembe csak az utana kovetkezo rendes abc karaktert? (MySql - PHP)
 
1

nem szép megoldás

Poetro · 2005. Feb. 16. (Sze), 14.34
Tudom, nem szép megoldás, de ha a lekérdezéskor kiszednéd belőle az első idézőjelet?
Valami ilyesmire gondolok:

SELECT nev, adatok, REPLACE(nev, '"', '') AS nev_noquote
FROM tablam ORDER BY nev_noquote;
--------
Poetro
2

SQL REPLACE() vs. PHP usort()

Anonymous · 2005. Feb. 16. (Sze), 14.36
SQL változat:

SELECT cim, REPLACE(cim,'"','') AS cim_sorrendhez
FROM tabla
ORDER BY cim_sorrendhez
(Ez az összes idézőjelet figyelmen kívül hagyja a rendezéskor, nem csak a mező elején lévőt.)

PHP változat:
Gyűjtsd egy tömbbe az adatbázisból kiolvasott rekordokat, és rendezd a tömböt az usort() függvennyel. Ehhez kell csinálnod egy, a saját igényeidnek megfelelő összehasonlító függvényt, ami elvégzi a sorbarendezéshez szükséges összehasonlításokat.

A fenti két lehetséges megoldás közül értelemszerűen csak az egyik kell.

Nadi
3

koszonom

Jano · 2005. Feb. 17. (Cs), 15.28
koszonom a valazokat!

Oszinten szolva abban biztam, hogy ez egy eleg tipikus problema es hatha SQL alapbol tamogatja es akkor meguszhato a sajat rendezes.
4

igy talan:

kmm · 2005. Feb. 17. (Cs), 15.45
elobb elirtam, javitottam...

-- pg eseten igy
select 
  cim,
  cast 
    when cim like '"%'
  then
    substring(cim from '"(.*)')
  else
    cim
  end  as sorcim
from 
  tabla
order by 
  sorcim
-- nem probaltam de az elv mindenkeppen jo, hasznalok "hasonlot"
-- mysqlben nemtudom mi a regexes substring megfeleloje
--
üdv: kmm...