[MySQL] Query die lege rows achterwege laat

Pagina: 1
Acties:

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Is er in combinatie met PHP/MySQL een simpele query te maken die alleen rows selecteerd en echo'd (row naam) en rows die niets bevatten achterwege laat?

Ik heb al gekeken naar IGNORE etc, maar weet niet goed hoe je zoiets in elkaar zet...

Zijn hier ergens goede voorbeelden van te vinden?

  • ZroBioNe
  • Registratie: Augustus 2001
  • Niet online
code:
1
IFNULL( value, value2)

Returns value if it is not null; otherwise, returns value2 (e.g., IFNULL(NULL, "bar") returns "bar").


Dit misschien?

[ Voor 14% gewijzigd door ZroBioNe op 21-12-2005 13:41 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-04 10:43

Janoz

Moderator Devschuur®

!litemod

WHERE veldje != null?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Dat zou inderdaad wel een optie zijn. Het gaat er om dat ik me afvraag of zo'n check direct in een query kan. Dat je het later met een if statement kan oplossen dat snap ik, maar in een query weet ik dus niet....

Zal hier eens ff induiken
Nou het gaat om 10 velden(in mijn test database), iemand heeft een app geschreven op een hele brakke niet genormaliseerde database. Met per record zo'n 80 velden waar er soms maar 10 en soms ook wel 70 van gevuld zijn met data...
Als je dit gelijk in een query eruit kan halen zou dat ideaal zijn en scheelt een hoop irritant werk. Ik heb dit alleen nog nooit geprobeert en zou ook niet weten hoe je dit aan pakt....

[ Voor 56% gewijzigd door ViNyL op 21-12-2005 13:45 ]


  • Wokkels
  • Registratie: Juli 2000
  • Laatst online: 29-10-2024

Wokkels

Het lekkerste zoutje

Waarom heb je uberhaupt rows die leeg zijn in je DB als ik vragen mag :?
oke, dan is me dat ook weer duidelijk :)

edit: de net gegeven voorbeelden zijn allebei in de query :P

[ Voor 49% gewijzigd door Wokkels op 21-12-2005 13:47 ]

Permanent wintericon!


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-04 10:43

Janoz

Moderator Devschuur®

!litemod

Wat wil je nu eigenlijk uit je query halen? Met een where op eventueel alle 80 velden kun je keurig de rows weglaten die niet zijn gevuld. Ik snap je probleem niet zo.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Nou precies wat je zegt. Ik wil een query doen waar van de 80 velden de lege velden weg gelaten worden en dus alleen de velden met inhoud getoond worden...

Maar dat zou betekenen dat je dus WHERE veld OR veld OR =! null moet doen ?

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-04 19:00

MBV

nope:
Where (veldje1 != NULL) AND (veldje2 = iets OR veldje3 = iets)

Als je van die AND een OR maakt, krijg je alle rijen waarin iets niet null is, plús alle resultaten die je al had...

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ja inderdaad, het wordt hoe dan ook dus een vrij lange query :D

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Je kunt NULLs niet met de >,<,= en != operatoren vergelijken. Je moet IS NOT NULL of IS NULL gebruiken.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 00:18
ViNyL schreef op woensdag 21 december 2005 @ 13:54:
Nou precies wat je zegt. Ik wil een query doen waar van de 80 velden de lege velden weg gelaten worden en dus alleen de velden met inhoud getoond worden...

Maar dat zou betekenen dat je dus WHERE veld OR veld OR =! null moet doen ?
Dit zul je in php op moeten lossen. Je kan niet in SQL voor de ene rij 11 kolommen ophalen, en voor een andere rij 30.
Zo moeilij kis het toch niet om in php op null-values te controleren.

Roomba E5 te koop


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Nee nee, dat is inderdaad ook niet zo moeilijk, maar ik was vrij benieuwd of dat mogelijk was...

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Ik zou gelijk het datamodel gaan refactoren ...

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Tja, als daar nou eens tijd voor vrij gemaakt zou worden :) Maar helaas is het zo dat het op de brakke database geschreven moet gaan worden :(

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-04 19:00

MBV

Oh zo, je wilt rijen opsplitsen in 2. Dat gaat niet. Je kan wel in sommige gevallen gebruik maken van Group By, om de totale verkopen van verkoper X op te tellen. Maar voor 2 rijen uit 1 rij halen zal je 2 queries moeten schrijven :)

Refactoren gaat uiteindelijk veel minder tijd kosten als ik het goed inschat. Ik ben ook ooit bezig geweest met een brakke PHP-app, 1 stageperiode lang (4-5 maanden?). Als ik na week 2 had ingezien dat het opnieuw ontwikkeld moest worden op een paar stukken na, dan was ik klaar geweest, nu moest er nog veel gebeuren.

[ Voor 41% gewijzigd door MBV op 21-12-2005 14:14 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-04 10:43

Janoz

Moderator Devschuur®

!litemod

Misschien is het wel een goed idee om in het vervolg je probleem iets duidelijker en uitgebreider te omschrijven. Op dit moment is het pas na de 10e posting duidelijk dat je het helemaal niet over rijen, maar over velden hebt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ja, soms vindt ik het lastig om iets wat in me hoofd zit uit te typen, I keep it in mind :) Dank allen, ik los het wel in php op ;)

  • lier
  • Registratie: Januari 2004
  • Laatst online: 21:18

lier

MikroTik nerd

Alleen al om onderscheid te maken in de gegevens (wat is een straat en wat is een huisnummertoevoeging oid) is het noodzakelijk dat je weet welke gegevens je binnen krijgt. Je zal altijd alle gegevens op willen halen en kan in de presentatielaag een selectie maken van de gegevens die je wel (en niet) wil weergeven.

Eerst het probleem, dan de oplossing

Pagina: 1