Je kunt een LEFT JOIN gebruiken.quote:Op dinsdag 27 oktober 2015 13:51 schreef wobbel het volgende:
Ik heb weer 'n kut vraag...hoe doe ik een join maar dan omgekeerd![]()
Tabel 1: Klanten met een klant ID
Tabel 2: Bestellingen gekoppeld aan klant ID
Ik wil nu alle klanten krijgen die géén bestelling hebben. Doe ik dit ook gewoon met een JOIN ofzo? Want die moet ik altijd koppelen op de ID's en dat wil ik nu juist niet
Jawel, je wilt wel joinen op id's, maar daarna wil je alle regels waar die join resultaten oplevert er weer uit filteren.quote:Op dinsdag 27 oktober 2015 13:51 schreef wobbel het volgende:
Ik heb weer 'n kut vraag...hoe doe ik een join maar dan omgekeerd![]()
Tabel 1: Klanten met een klant ID
Tabel 2: Bestellingen gekoppeld aan klant ID
Ik wil nu alle klanten krijgen die géén bestelling hebben. Doe ik dit ook gewoon met een JOIN ofzo? Want die moet ik altijd koppelen op de ID's en dat wil ik nu juist niet
1 2 3 4 | SELECT klant.* FROM klant LEFT JOIN bestelling ON klant.id = bestelling.klant_id WHERE bestelling.id IS NULL; |
Je kan dan beter WHERE NOT EXISTS() gebruiken.quote:Op dinsdag 27 oktober 2015 14:12 schreef Aether het volgende:
[..]
Je kunt een LEFT JOIN gebruiken.
Voor rijen die niet gekoppeld konden worden krijg je NULL terug waarop je kunt filteren.
Dan heb je een dependant subquery en waarschijnlijk minder optimalisatiemogelijkheden. Bij kleine aantallen (tientallen) maakt dat niet uit, bij grotere aantallen klanten en/of bestellingen zou ik het eerst vergelijken om te zien welke oplossing beter presteert.quote:Op dinsdag 27 oktober 2015 14:37 schreef TwenteFC het volgende:
[..]
Je kan dan beter WHERE NOT EXISTS() gebruiken.
SELECT K.ID
FROM Klanten AS K
WHERE NOT EXISTS ( SELECT 1 FROM Bestellingen AS B WHERE B.KlantID=K.ID )
Waarom? Als je een rare oplossing moet zoeken, dan betekend het meestal dat je iets fout doet.quote:Op woensdag 28 oktober 2015 16:50 schreef Ser_Ciappelletto het volgende:
Pagina.php zet ik liever niet in de webroot. Kan ik een verwijzing maken vanuit die andere map?
Het gaat om een paar duizend records, dus op zich valt het mee. Maar bedankt voor het meedenken, zoeken met NULL functioneert inderdaadquote:Op woensdag 28 oktober 2015 19:17 schreef Light het volgende:
[..]
Dan heb je een dependant subquery en waarschijnlijk minder optimalisatiemogelijkheden. Bij kleine aantallen (tientallen) maakt dat niet uit, bij grotere aantallen klanten en/of bestellingen zou ik het eerst vergelijken om te zien welke oplossing beter presteert.
Kun je die span niet op iets anders pakken dan dat het het 12e item is? Iets met een id, class of ander attribuut zou het leven veel makkelijker maken, dan ben je niet meer volledig afhankelijk van de volgorde waarin de items staan.quote:Op donderdag 29 oktober 2015 08:06 schreef wobbel het volgende:
[..]
Het gaat om een paar duizend records, dus op zich valt het mee. Maar bedankt voor het meedenken, zoeken met NULL functioneert inderdaadWeer wat geleerd vandaag.
Gaan we ons vandaag eens inlezen in DOMDocument...moet een 12e span uitlezen uit een HTML document
Geen idee of het een rare oplossing is en of ik iets fout doe.quote:Op woensdag 28 oktober 2015 20:25 schreef Darkomen het volgende:
[..]
Waarom? Als je een rare oplossing moet zoeken, dan betekend het meestal dat je iets fout doet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SELECT ... CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN MID( `contents`, LOCATE( '<blockquote>', `contents` ) + 12, (LOCATE( '</blockquote>', `contents` ) - LOCATE( '<blockquote>', `contents` )) - 12 ) ELSE '' END AS post_quote, CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN CONCAT_WS( LEFT( `contents` , LOCATE( '<blockquote>', `contents`) - 1), ' ', RIGHT( `contents` , LENGTH(`contents`) - (LOCATE( '</blockquote>', `contents` ) + 12)) ) ELSE `contents` END AS post_contents, ... FROM fok_topic, fok_post WHERE ... |
1 2 3 4 5 6 | <blockquote><font size="1" face="verdana, aial, helvetica">quote:</font> <hr>Feedback is geen vrijblijvend "post hier wat je wilt"-forum. Als je denkt grappig te moeten zijn, je postaantal te moeten opkrikken of om een andere reden een post plaatst die in de FB-context totaal geen nut heeft, loop je de kans dat je post verwijderd wordt.<hr> </blockquote>Nog steeds geldt in Feedback het "post dan niks"-principe: als je niks te melden hebt, ga dan wat anders doen. Er moeten nog te veel compleet nutteloze posts verwijderd worden... |
Jup, kloptquote:Op zaterdag 31 oktober 2015 20:03 schreef Monolith het volgende:
Volgens mij heeft MySQL nog steeds niet echt lekkere support voor regular expressions, maar dit is een schoolvoorbeeld van een situatie waarbij je die wilt gebruiken.
Is het geen optie om gewoon het geheel te selecteren en de regex replace in PHP te doen?
Sphinx ken ik niet echt als search engine, maar heeft die niet net als bijvoorbeeld ElastisSearch en SOLR gewoon filtermogelijkheden op de gevoede data?quote:Op zaterdag 31 oktober 2015 20:06 schreef bondage het volgende:
[..]
Jup, kloptIk was vergeten te vermelden dat het niet naar een PHP script gaat. Deze data wordt aan een Sphinx zoekserver index gevoed en ik kan helaas niets manipuleren. Dit moet dus in de query worden gedaan.
Het is bij Sphinx mogelijk om gebruik te maken van een xml pipe. Dan kan ik de data zelf aan de indexer voeden vanuit een php script. Dit is echter zeer traag en daarom geen optie. Helaas is het maar een simpele server en als er heel veel tegelijk uitgevoerd moet worden vertraagt de boel.quote:Op zaterdag 31 oktober 2015 20:11 schreef Monolith het volgende:
[..]
Sphinx ken ik niet echt als search engine, maar heeft die niet net als bijvoorbeeld ElastisSearch en SOLR gewoon filtermogelijkheden op de gevoede data?
Is zoiets geen optie?quote:Op zaterdag 31 oktober 2015 20:17 schreef bondage het volgende:
[..]
Het is bij Sphinx mogelijk om gebruik te maken van een xml pipe. Dan kan ik de data zelf aan de indexer voeden vanuit een php script. Dit is echter zeer traag en daarom geen optie. Helaas is het maar een simpele server en als er heel veel tegelijk uitgevoerd moet worden vertraagt de boel.
Dank, ga ik even checken. Het is mijn eigen server, denk dat ik die mogelijkheid wel heb. En anders creëer ik dezequote:Op zaterdag 31 oktober 2015 20:27 schreef Monolith het volgende:
[..]
Is zoiets geen optie?
https://github.com/hholzgra/mysql-udf-regexp
Als je tenminste UDFs kunt gebruiken op je server.
Zoiets?quote:Op maandag 2 november 2015 20:36 schreef Keiichi het volgende:
Ik heb een bestan met op elke lijn 2 of meerdere bestandsnamen. Deze zijn gescheiden door een spatie en spaties in bestandsnamens geescaped. (Voor de nieuwsgierigen, output van fdupes -1 -r -S ./)
Ik wil deze lijnen met preg_split splitten, maar ik breek m'n hersens over hoe ik met die escaped spatie om moet gaan. Hoe krijg ik dit voor elkaar?
Zelfs $files = str_getcsv($line," ","","\\"); biedt geen uitkomst.. (Waarom herkent ie de backslashes niet?)
1 2 3 4 5 | <?php $s = '123.php 456\ 789.php ab\ c\ def.php'; $a = preg_split( '~(?<!\\\)\\s~', $s ); print_r($a); ?> |
1 2 3 4 5 6 | Array ( [0] => 123.php [1] => 456\ 789.php [2] => ab\ c\ def.php ) |
1 | <img class="rde_img_smiley" src="http://i.fok.nl/s/clown.gif" width="15" height="15" alt=":+" /> |
1 | <img data-src="http://www.voorbeeld.com/bla.jpg" style="visibility:hidden;" /> |
1 2 3 | <?php $result = preg_replace('/<img(?<!class="rde_img_smiley")[^>]+\>/i', "[afbeelding verwijderd]", $post_contents); ?> |
Some people, when confronted with a problem, thinkquote:Op zaterdag 7 november 2015 14:14 schreef bondage het volgende:
Ik zit met een regex probleempje en aangezien ik nogal faal als het aankomt op reguliere expressies kom er niet uit
Wat ik wil is plaatjes uit posts filteren, echter moeten plaatjes met een bepaalde class wel blijven staan.
Dit moet blijven:
[ code verwijderd ]
Dit moet weg:
[ code verwijderd ]
Ik gebruik deze regex maar die haalt alle afbeeldingen weg:
[ code verwijderd ]
Iemand idee hoe dit op te lossen?
En dan moet je er nog rekening mee houden dat die class kan worden voorafgegaan en/of gevolgd door een andere class. En dat een afbeelding zonder die class gevolgd kan worden door een met die class, dan moet je wel de goede afbeelding verwijderen. En over een half jaar moet je ook nog snappen wat de regex doet (ook als het er niet in commentaar bij staat).quote:Op zaterdag 7 november 2015 18:22 schreef Nattekat het volgende:
Als je al RE's wilt gebruiken, dan hoef je enkel te kijken of de string 'class=*"rde_smiley"' (niet) bevat.
Dus .*(class\=).*(\"rde_smiley\").*
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |