Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Mysql, if column a is not null, column b is not null. hoe?

Pagina: 1
Acties:

Vraag


  • AlphaJuno2
  • Registratie: september 2012
  • Laatst online: 27-05 18:42
Ik moet een gegevens uit onderstaande tabel halen.
In dit geval wil ik id 2 en id 3 selecteren en id 1 skippen
Dus wanneer column document NULL is, moet column date ook NULL zijn, heeft column document een waarde, dan moet column date ook een waarde hebben.

+----+------+----------+------------+
| id | name | document |    date    |
+----+------+----------+------------+
| 1  | John |  doc01   |    NULL    |
| 2  | Jane |  NULL    |    NULL    |
| 3  | Mark |  doc02   | 23-10-2018 |
+----+------+----------+------------+


Iemand een idee hoe deze query er uit komt te zien?

Alvast bedankt

Beste antwoord (via AlphaJuno2 op 23-10-2018 12:04)


  • Harrie_
  • Registratie: juli 2003
  • Niet online

Harrie_

🔴 🔴 🔴 🔴 🔴

SQL:
1
2
3
4
5
6
7
8
9
10
SELECT
      id
    , name
    , document
    , date
FROM table
WHERE
    (document IS NOT NULL AND date IS NOT NULL)
    OR
    (document IS NULL AND date IS NULL)
MichielPH schreef op dinsdag 23 oktober 2018 @ 11:43:
Er valt ook iets voor te zeggen om het op te splitsen in 2 tabellen:
Dan kan je documentId en date nullable maken.
We kennen de usecase niet? Misschien is het een bestaande tabel waar TS data uit wil halen?

[Voor 45% gewijzigd door Harrie_ op 23-10-2018 11:45]

☀️🔋  18 Panelen | 5,8 kWp | SolarEdge SE6K

Alle reacties


  • Mavamaarten
  • Registratie: september 2009
  • Laatst online: 21:30

Mavamaarten

Omdat het kan!

Pseudocode:
if((document == null AND date == null) OR (document != null AND date != null))

Daar moet je het wel mee kunnen doen?

Android developer & dürüm-liefhebber


  • MichielPH
  • Registratie: februari 2005
  • Laatst online: 20-06 15:41
Er valt ook iets voor te zeggen om het op te splitsen in 2 tabellen:

+----+------+-------------+
| id | name | documentId  |
+----+------+-------------+
| 1  | John |      1      |
| 2  | Jane |     NULL    |
| 3  | Mark |      2      |
+----+------+-------------+


+----+-------+------------+
| id | name |    date     |
+----+-------+------------+
| 1  | doc01 |  NULL      |
| 1  | doc02 | 23-10-2018 |
+----+-------+------------+


Dan kan je documentId en date nullable maken.

edit:
Vraag niet goed begrepen, tijd voor koffie.

[Voor 4% gewijzigd door MichielPH op 23-10-2018 11:44]


Acties:
  • Beste antwoord
  • +1Henk 'm!

  • Harrie_
  • Registratie: juli 2003
  • Niet online

Harrie_

🔴 🔴 🔴 🔴 🔴

SQL:
1
2
3
4
5
6
7
8
9
10
SELECT
      id
    , name
    , document
    , date
FROM table
WHERE
    (document IS NOT NULL AND date IS NOT NULL)
    OR
    (document IS NULL AND date IS NULL)
MichielPH schreef op dinsdag 23 oktober 2018 @ 11:43:
Er valt ook iets voor te zeggen om het op te splitsen in 2 tabellen:
Dan kan je documentId en date nullable maken.
We kennen de usecase niet? Misschien is het een bestaande tabel waar TS data uit wil halen?

[Voor 45% gewijzigd door Harrie_ op 23-10-2018 11:45]

☀️🔋  18 Panelen | 5,8 kWp | SolarEdge SE6K


  • RobIII
  • Registratie: december 2001
  • Laatst online: 02:30

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Komaan zeg. Leg dan op z'n minst uit hoe je met die query op de proppen kwam en/of geef wat onderbouwing...
Give a man a fish and feed him for a day. Teach a man how to fish and feed him for a lifetime.
Laten we nou eens kappen met kant-en-klare oplossingen neer te zetten. Niemand heeft er baat bij als we van de Devschuur® een afhaalchinees of slap Stackoverflow aftreksel maken.

[Voor 4% gewijzigd door RobIII op 23-10-2018 11:52]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • AlphaJuno2
  • Registratie: september 2012
  • Laatst online: 27-05 18:42
SQL:
1
2
3
4
5
6
7
8
9
10
SELECT
      id
    , name
    , document
    , date
FROM table
WHERE
    (document IS NOT NULL AND date IS NOT NULL)
    OR
    (document IS NULL AND date IS NULL)
Super bedankt voor je antwoord. ;)

Totaal niet bij stil gestaan dat ik ook een OR operator kan gebruiken.
Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True