SELECT COUNT(*) FROM (SELECT DISTINCTROW Artists.Artist FROM Artists INNER JOIN Songs ON Songs.IDArtist = Artists.ID WHERE Songs.SongPath like '*Rock*')
While setting this in a MM script always return '0', can someone explain what's wrong? Problem with special characters like '*' when the string is parsed??
Set QueryTest = SDB.Database.OpenSQL("SELECT COUNT(*) FROM (SELECT DISTINCTROW Artists.Artist FROM Artists INNER JOIN Songs ON Songs.IDArtist = Artists.ID WHERE Songs.SongPath Like '*Rock*')")
(Using "NOT LIKE" always returns the total number of albums...)
Set QueryRock = SDB.Database.OpenSQL("SELECT COUNT(*) FROM (SELECT DISTINCTROW Artists.Artist FROM Artists INNER JOIN Songs ON Songs.IDArtist = Artists.ID WHERE Songs.SongPath Like '*Rock*')")
Doc.Write "<LI>Rock: " &QueryRock.StringByIndex(0)& "</LI><br>"
Set QueryPop = SDB.Database.OpenSQL("SELECT COUNT(*) FROM (SELECT DISTINCTROW Artists.Artist FROM Artists INNER JOIN Songs ON Songs.IDArtist = Artists.ID WHERE Songs.SongPath Like '*Pop*')")
Doc.Write "<LI>Pop: " &QueryPop.StringByIndex(0)& "</LI><br>"
And yes the result is always '0' whenever i use the LIKE operator (ok if i use '=' and/or '<>', and so on...)
Ok, I see. The problem is that LIKE syntax differs by connection method to DB. MM connects through ODBC and the correct syntax in this case is: SongPath Like '%Pop%'.
Anyway, shouldn't the query be rather based on Genre field?