mboost-dp1

subquery mysql COUNT(*) LIKE(*) problem!


Gå til bund
Gravatar #1 - Kan.Du.Huske.Hvem.Jeg.Var
21. jun. 2009 23:31
Jeg har søgt og søgt i uendeligheder, men jeg kan simpelhen ikke knække denne nød! Nogle forslag?

SELECT * , (

SELECT COUNT( * )
FROM `indlaeg`
WHERE `tags` LIKE CONVERT( _utf8 '%' + `indlaegkategorier`.`short-url` + '%'
USING latin1 )
COLLATE latin1_swedish_ci
) AS antalindlag
FROM `indlaegkategorier`


Hvorfor virker den ikke?
Gravatar #2 - arne_v
21. jun. 2009 23:52
#1

Det er jo rent gætteri, da du undlader at fortælle hvad fejlen er.

Men skal jeg gætte så vil jeg foreslå at du laver en JOIN på de to tabeller og bruger GROUP BY.
Gravatar #3 - arne_v
21. jun. 2009 23:54
Og så ser det ud som om at du har et tags felt med en liste af tags. Hvis du lavede det om til en separat tabel som sammenknyttede tags med indlæg, så ville det måske endda performe godt.
Gravatar #4 - Kan.Du.Huske.Hvem.Jeg.Var
22. jun. 2009 00:02
Jeg er selv overbevist om at fejlen ligger i.

'%' +  `indlaegkategorier`.`short-url` +  '%'


Den tæller simpelthen ikke de poster hvor for eksempel 'dagens-inspiration' indgår.
Gravatar #5 - Kan.Du.Huske.Hvem.Jeg.Var
22. jun. 2009 00:18
Jeg har besluttet mig for at løse problemet på den måde du beskriver i #3. Mange tak for hjælpen.
Gravatar #6 - arne_v
22. jun. 2009 00:46
#4

Nu du nævner den del.

MySQL bruger CONCAT funktionen i.s.f. + til streng konkatanering ikke?
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login