PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abfrage Problem mit COUNT()


local
09.07.2009, 09:48:08
Struktur der Tabelle:

CREATE TABLE `newsletter_openings` (
`id` int(11) NOT NULL auto_increment,
`agent` varchar(255) NOT NULL default '',
`referer` varchar(255) NOT NULL default '',
`kampagne` int(4) NOT NULL default '0',
PRIMARY KEY (`id`)
);

Die Abfrage:


SELECT *
FROM `newsletter_openings`
WHERE `agent` LIKE '%MSIE 6.0%'
OR `agent` LIKE '%MSIE 7.0%'
OR `agent` LIKE '%MSIE 8.0%'
AND `agent` LIKE '%Windows NT 5.0%'
OR `agent` LIKE '%Windows NT 5.1%'
OR `agent` LIKE '%Windows NT 6.0%'
HAVING `referer` = ' '
AND `kampagne` =709

das lustige ist sobald ich das ganze zählen will, fuktioniert es nicht mehr

SELECT COUNT(*)
FROM `newsletter_openings`
WHERE `agent` LIKE '%MSIE 6.0%'
OR `agent` LIKE '%MSIE 7.0%'
OR `agent` LIKE '%MSIE 8.0%'
AND `agent` LIKE '%Windows NT 5.0%'
OR `agent` LIKE '%Windows NT 5.1%'
OR `agent` LIKE '%Windows NT 6.0%'
HAVING `referer` = ' '
AND `kampagne` =709

FEHLER: #1054 - Unknown column 'referer' in 'having clause'

hab es schon hin und her probiert doch komme nicht auf das ergebnis

xabbuh
09.07.2009, 09:55:50
In der Abfrage lies du keine Spalte referer aus.

Richtig:
SELECT COUNT(*)
FROM `newsletter_openings`
WHERE (`agent` LIKE '%MSIE 6.0%'
OR `agent` LIKE '%MSIE 7.0%'
OR `agent` LIKE '%MSIE 8.0%'
AND `agent` LIKE '%Windows NT 5.0%'
OR `agent` LIKE '%Windows NT 5.1%'
OR `agent` LIKE '%Windows NT 6.0%')
AND `referer` = ' '
AND `kampagne` =709

local
09.07.2009, 10:03:11
hmm lese ich nicht aus? wähle doch mit dem der wildcard * alles aus der tabelle aus!

local
09.07.2009, 10:10:40
oder sollte ich in der struktur den referer auf null setzten, dass ich diesen mit referer IS NULL abfrage?

xabbuh
09.07.2009, 16:20:18
hmm lese ich nicht aus? wähle doch mit dem der wildcard * alles aus der tabelle aus!
Nö, du zählst die Daten ja nur.

Funktioniert denn die von mir gepostete Variante nicht?

Crisps
09.07.2009, 16:47:46
FEHLER: #1054 - Unknown column 'referer' in 'having clause'

Für HAVING muss man, soweit ich mich erinnern kann, die Spalte auch im Select einbeziehen.

Aber warum benutzt du überhaupt HAVING? Ist doch in diesem Fall völlig unnötig - machs doch so wie von xabbuh vorgeschlagen.

local
09.07.2009, 18:56:26
Nö, du zählst die Daten ja nur.

Funktioniert denn die von mir gepostete Variante nicht?

Doch, doch die Variante von dir funktioniert einwandfrei!

Danke dafür