Informatie van je database.

MySQL, FireBird, MSSQL, etc..
Gebruikersavatar
Wout
Moderator
Berichten: 3276
Lid geworden op: 03 dec 2007, 14:17
Answers: 1
SAM-versie: SAM 2019.3
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Informatie van je database.

Ongelezen bericht door Wout »

Ben bezig om een optimale playlist-setting te maken voor SAM.
Hierbij word in elke categorie de optimale settings bepaald voor album, artiest & titel.
De PAL zelf laat nog even op zich wachten. ;)
Ik moet er een nieuwe functie voor schrijven voor de EnForceRules.

Maar je kan alvast je database voor bereiden.

Code: Selecteer alles

// eenmalig uitvoeren in je database
ALTER TABLE category ADD COLUMN album_min INT DEFAULT NULL, ADD COLUMN artist_min INT DEFAULT NULL, ADD COLUMN title_min INT DEFAULT NULL ;
 
Dit kan je steeds uitvoeren als je nieuwe muziek toevoegt.
Dan bereken hij weer de optimale setting.

Code: Selecteer alles

UPDATE
  category
CROSS JOIN (
    SELECT
      category.ID as B,
      name,
      FLOOR(AVG(duration)/60000) * COUNT(DISTINCT(album)) AS album_minuten,
      FLOOR(AVG(duration)/60000) * COUNT(DISTINCT(artist)) AS artist_minuten,
      FLOOR(AVG(duration)/60000) * COUNT(DISTINCT(title)) AS title_minuten
    FROM
      category, categorylist, songlist
    WHERE
      category.ID = categorylist.categoryID
    AND
      categorylist.songID = songlist.ID
    GROUP BY
      category.name
      ) AS A
SET
  album_min = album_minuten,
  artist_min = artist_minuten,
  title_min = title_minuten
WHERE
  ID = B; 
Afbeelding
Gebruikersavatar
Wout
Moderator
Berichten: 3276
Lid geworden op: 03 dec 2007, 14:17
Answers: 1
SAM-versie: SAM 2019.3
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Informatie van je database.

Ongelezen bericht door Wout »

Nog eentje, die al een tijdje op mijn verlanglijstje staat.
Onderstaande code spilt de artiest met feat. gebeuren.

Code: Selecteer alles

SELECT artist,
SUBSTRING_INDEX(artist,'feat.',1) AS artist1,
SUBSTRING_INDEX(SUBSTRING_INDEX(artist,'feat.',2),'feat.',-1) AS artist2
FROM songlist
WHERE artist like '%feat.%'; 
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Afbeelding
Gebruikersavatar
Wout
Moderator
Berichten: 3276
Lid geworden op: 03 dec 2007, 14:17
Answers: 1
SAM-versie: SAM 2019.3
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Informatie van je database.

Ongelezen bericht door Wout »

Het probleem wat bij mij voordoet is dat dezelfde nummer meerdere malen in één categorie staat.
Dat komt omdat ik het ooit meerdere keren erin hebt gesleept.
De onderstaande code haalt de dubbele songID`s eruit van al je categorieën.

Code: Selecteer alles

DELETE FROM categorylist WHERE ID IN 
(SELECT * FROM (SELECT ID FROM categorylist GROUP BY songID, categoryID HAVING COUNT(songID) > 1) AS t) ; 
Afbeelding
Gebruikersavatar
Wout
Moderator
Berichten: 3276
Lid geworden op: 03 dec 2007, 14:17
Answers: 1
SAM-versie: SAM 2019.3
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Informatie van je database.

Ongelezen bericht door Wout »

Hierbij een uitdraai van de oudste gedraaide nummer per categorie.

Code: Selecteer alles

SELECT t.ID, c.name, t.artist, t.title, r.MaxTime, datediff(r.MaxTime, now()) verschil
FROM (
      SELECT songID, categoryID, min(date_played) as MaxTime
      FROM songlist a, categorylist b 
        WHERE a.ID = b.songID 
      GROUP BY categoryID
      ORDER BY maxtime
) r
INNER JOIN songlist t ON t.date_played = r.MaxTime 
INNER JOIN category c ON c.ID = r.categoryID
WHERE c.parentID = 0 ; 
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Afbeelding
Gebruikersavatar
renem
**
Berichten: 40
Lid geworden op: 09 jan 2018, 07:33
SAM-versie: 4.9.0.*
Database: MySQL 5.6
Windows: 7 32-bits

Re: Informatie van je database.

Ongelezen bericht door renem »

Wout schreef:Hierbij een uitdraai van de oudste gedraaide nummer per categorie.
Deze werkt bij mij niet, krijg 0 resultaten, Zou dit met alles versies van Sam moeten werken?
Gebruikersavatar
Wout
Moderator
Berichten: 3276
Lid geworden op: 03 dec 2007, 14:17
Answers: 1
SAM-versie: SAM 2019.3
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Informatie van je database.

Ongelezen bericht door Wout »

renem schreef:
Wout schreef:Hierbij een uitdraai van de oudste gedraaide nummer per categorie.
Deze werkt bij mij niet, krijg 0 resultaten, Zou dit met alles versies van Sam moeten werken?
Jazeker.
Gebruik je MySQL? en zo ja welke versie?
Afbeelding
Gebruikersavatar
renem
**
Berichten: 40
Lid geworden op: 09 jan 2018, 07:33
SAM-versie: 4.9.0.*
Database: MySQL 5.6
Windows: 7 32-bits

Re: Informatie van je database.

Ongelezen bericht door renem »

Wout schreef:
renem schreef:
Wout schreef:Hierbij een uitdraai van de oudste gedraaide nummer per categorie.
Deze werkt bij mij niet, krijg 0 resultaten, Zou dit met alles versies van Sam moeten werken?
Jazeker.
Gebruik je MySQL? en zo ja welke versie?
Ik gebruik MariaDB 10
Gebruikersavatar
Wout
Moderator
Berichten: 3276
Lid geworden op: 03 dec 2007, 14:17
Answers: 1
SAM-versie: SAM 2019.3
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Informatie van je database.

Ongelezen bericht door Wout »

renem schreef: Ik gebruik MariaDB 10
*kuch* kijk even naar de voorwaarde in de beginpost. database/informatie-van-database-t5016.html#p30904 :D
Afbeelding
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht