Archief - MYSQL: Doe iets met een 'Alias'

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

iamdesign

Legacy Member
hoy allemaal,

ik heb een irritant probleempje.

Ik heb een searchveld waar je een voornaam of naam (of beiden) kan invullen.
Als je op submit klikt dan wordt er gezocht als deze naam voorkomt in de database.

nu wilde ik gebruik maken vn de vlg query:
Code:
SELECT *,CONCAT( firstname, ' ', name ) AS fullname FROM subscribers WHERE fullname LIKE '%".$name."%'

Nu blijkt dit niet te werken vlg mysql reference guide, omdat het kan zijn dat de alias fullname ng niet bekend is wanneer de query wordt uitgevoerd.

Is er een andere manier om mijn 2 kolommen name & firstname eerst samen te nemen en dan daarin te zien als er iets overeen komt met men zoekterm?

thnx alvast

iamdesign

Legacy Member
ok heb het gevonden :)

Code:
SELECT *
FROM subscribers
WHERE CONCAT(firstname,' ', name) LIKE '%".$search."%'

Rvl

Legacy Member
dat komt doordat hij eerst naar de where clause gaat kijken en als laatste stap pas de select gaat uitvoeren, is zo een volgorde in een stuk of 6 stappen. (ken de juiste volgorde wel niet meer maar select kwam allesinds na where etc)

killgore

Legacy Member
Code:
SELECT *,CONCAT( firstname, ' ', name ) AS fullname FROM subscribers 
HAVING fullname LIKE '%".$name."%'

Als je die fullname natuurlijk ook terug wilt krijgen, anders is uw functie in de where gebruiken beter.

WHiSPy

Legacy Member
killgore zei:
Code:
SELECT *,CONCAT( firstname, ' ', name ) AS fullname FROM subscribers 
HAVING fullname LIKE '%".$name."%'

Als je die fullname natuurlijk ook terug wilt krijgen, anders is uw functie in de where gebruiken beter.

AFAIK hoort 'n having altijd bij 'n group by. ;)

killgore

Legacy Member
WHiSPy zei:
AFAIK hoort 'n having altijd bij 'n group by. ;)

hmpf, kheb hier niet direct een SQL db ter beschikkingom te testen, maar ik dacht dat de HAVING er vooral op sloeg dat ze als laatste werd uitgevoerd.
En wordt ze vnl gebruikt bij GROUP BY's omdat je geen group-functies kan gebruiken in de WHERE (door die uitvoeringsvolgorde).

edit: ge hebt gelijk :):
The SQL standard requires that HAVING must reference only columns in the GROUP BY clause or columns used in aggregate functions
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan