Er gaat wat mis met mijn queries
Met een query probeer ik de boel uit elkaar te houden. Voor het microsoft systeem heb ik:
SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND email LIKE '%outlook.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'
ORDER BY id
DESC LIMIT 0,200");
Het gekke is dat hij op zich goed scheidt, maar dat ook de mensen die bij blacklist een '1' hebben staan mail krijgen. Hoe kan dat? Ik snap daar niks van.
Dan nog een probleempje. Ik dacht, ik pas de query aan en zet overal NOT voor, voor het andere systeem:
SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND email NOT LIKE '%outlook.com'
OR email NOT LIKE '%hotmail.com'
OR email NOT LIKE '%live.com'
OR email NOT LIKE '%msn.com'
ORDER BY id DESC
LIMIT 0 , 200
Hierbij krijg ik gewoon een lijst met alle hotmail etc adressen er gewoon in. Weet iemand wat ik verkeerd doe?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND
(
email LIKE '%outlook.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'
)
ORDER BY id
DESC LIMIT 0,200");
FROM subscribers
WHERE blacklisted = '0'
AND
(
email LIKE '%outlook.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'
)
ORDER BY id
DESC LIMIT 0,200");
Zie ook topic "php wiskunde een pré"
SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND
(
email NOT LIKE '%outlook.com'
OR email NOT LIKE '%hotmail.com'
OR email NOT LIKE '%live.com'
OR email NOT LIKE '%msn.com'
)
ORDER BY id
DESC LIMIT 0,200
Hierbij krijg ik gewoon hotmail en live adressen er doorheen.
Gewijzigd op 28/07/2017 17:17:25 door Arthur Nolles
Quote:
email LIKE '%outlook.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'
Geeft false or true or false or false is dus true.
Quote:
email NOT LIKE '%outlook.com'
OR email NOT LIKE '%hotmail.com'
OR email NOT LIKE '%live.com'
OR email NOT LIKE '%msn.com'
OR email NOT LIKE '%hotmail.com'
OR email NOT LIKE '%live.com'
OR email NOT LIKE '%msn.com'
Geeft true or false or true or true is dus true.
Dat was de oplossing, Adoptive Solution! Bedankt
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND
email NOT LIKE '%outlook.com'
AND email NOT LIKE '%hotmail.com'
AND email NOT LIKE '%live.com'
AND email NOT LIKE '%msn.com'
FROM subscribers
WHERE blacklisted = '0'
AND
email NOT LIKE '%outlook.com'
AND email NOT LIKE '%hotmail.com'
AND email NOT LIKE '%live.com'
AND email NOT LIKE '%msn.com'
aangezien je dan juist wél aan alle voorwaarden moet voldoen (ook aan alle negatieve)
Gewijzigd op 28/07/2017 18:18:15 door Ivo P