#2 virker ikke helt efter hensigten
test tabel
CREATE TABLE `ordliste` (
`id` int(11) NOT NULL,
`ord_engelsk` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`ord_dansk` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`ord_svensk` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`ord_tysk` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
INSERT INTO `ordliste` (`id`, `ord_engelsk`, `ord_dansk`, `ord_svensk`, `ord_tysk`) VALUES
(1, 'cat', 'kat', '', ''),
(2, 'dog', 'hund', '', ''),
(3, 'horse', 'hest', '', ''),
(4, 'pig', 'gris', '', ''),
(5, 'goat', 'ged', '', ''),
(6, 'rabbit', 'kanin', '', '');
ALTER TABLE `ordliste`
ADD PRIMARY KEY (`id`);
ALTER TABLE `ordliste`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;COMMIT;
SELECT COUNT(id) AS norows, COUNT(ord_dansk) AS nodk, COUNT(ord_svensk) AS nosv, COUNT(ord_engelsk) AS noen, COUNT(ord_tysk) AS noty FROM ordliste
output
norows,nodk,nosv,noen,noty
6,6,6,6,6
ønsket 6,6,0,6,0
tilgengæld ser det rigtigere ud med en IF i count
SELECT COUNT(id) AS norows, COUNT(IF(ord_dansk !='',1 ,NULL)) AS nodk, COUNT(IF(ord_svensk !='',1 ,NULL)) AS nosv, COUNT(IF(ord_engelsk !='',1 ,NULL)) AS noen, COUNT(IF(ord_tysk !='',1 ,NULL)) AS noty FROM ordliste
jeg har COUNT(id) med for at have det totale antal rækker med ud, for det tilfælde der er nogle blanke ord i engelsk eller dansk
hvorfor skal man i count bruge NULL og ikke 0 ??