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:
  1. SELECT nev, adatok, REPLACE(nev, '"'''AS nev_noquote  
  2. FROM tablam ORDER BY nev_noquote;  
--------
Poetro
2

SQL REPLACE() vs. PHP usort()

Anonymous · 2005. Feb. 16. (Sze), 14.36
SQL változat:
  1. SELECT cim, REPLACE(cim,'"',''AS cim_sorrendhez  
  2. FROM tabla  
  3. 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...
  1. -- pg eseten igy  
  2. select   
  3.   cim,  
  4.   cast   
  5.     when cim like '"%'  
  6.   then  
  7.     substring(cim from '"(.*)')  
  8.   else  
  9.     cim  
  10.   end  as sorcim  
  11. from   
  12.   tabla  
  13. order by   
  14.   sorcim  
  15. -- nem probaltam de az elv mindenkeppen jo, hasznalok "hasonlot"  
  16. -- mysqlben nemtudom mi a regexes substring megfeleloje  
--
üdv: kmm...