#Mainīgo iestatīšana
SET @input_name = 'Emīls';        #Vārds
SET @input_surname = 'Skābardis'; #Uzvārds
SET @input_month = 6;             #Mēnesis
SET @input_day = 21;              #Dienas
SET @birthday = '2007-05-05';     #Dzimšanas diena (YYYY-MM-DD)

#1) Vārdi, kam vārdadiena ir tajā pašā nedēļā
SELECT name, day, month 
FROM namsday 
WHERE WEEK(CONCAT(YEAR(CURDATE()), '-', month, '-', day), 1) = 
      WEEK(CONCAT(YEAR(CURDATE()), '-', @input_month, '-', @input_day), 1);

#2) Vārdi, kuru garums sakrīt ar ievadīto vārdu
SELECT name, day, month 
FROM namsday 
WHERE CHAR_LENGTH(name) = CHAR_LENGTH(@input_name);

#3) Vārdi, kuru garums sakrīt ar ievadīto uzvārdu
SELECT name, day, month 
FROM namsday 
WHERE CHAR_LENGTH(name) = CHAR_LENGTH(@input_surname);

#4) Vārdi, kas sākas un beidzas ar vārda burtiem
SELECT name, day, month  
FROM namsday 
WHERE name LIKE CONCAT(SUBSTRING(@input_name, 1, 1), '%',  RIGHT(@input_name, 1))
;

#5) Vārdi, kas sākas ar vārda pēdējo burtu
SELECT name, day, month  
FROM namsday 
WHERE LEFT(name, 1) = RIGHT(@input_name, 1);

#6) Vārdi, kas būs pēc mēnešiem, cik ir mans vārda dienas datums
SELECT name, day, month 
FROM namsday 
WHERE month = ((@input_month + @input_day - 1) % 12) + 1;

#7) Vārdi, kas sākas ar pirmo burtu un sakārtoti pēc noteikta secības
SELECT name, day, month 
FROM namsday 
WHERE name LIKE CONCAT(SUBSTRING(@input_name, 1, 1), '%') 
ORDER BY month DESC, day ASC;

#8) Vārdi, kas sākas ar pēdējo burtu un ir vārdu dienas mēnesī
SELECT name, day, month 
FROM namsday 
WHERE name LIKE CONCAT(RIGHT(@input_name, 1), '%') 
  AND month = @input_month;

#9) Garākie vārdi, kas sākas un beidzas ar vārda pirmo un pēdējo burtu katrā mēnesī
SELECT name, day, month
FROM namsday
WHERE name LIKE CONCAT(SUBSTRING(@input_name, 1, 1), '%',  RIGHT(@input_name, 1))
AND month IN (
    SELECT month
    FROM namsday
    WHERE name LIKE CONCAT(SUBSTRING(@input_name, 1, 1), '%',  RIGHT(@input_name, 1))
    GROUP BY month
    HAVING CHAR_LENGTH(name) = MAX(CHAR_LENGTH(name))
)
ORDER BY month;

#10) Vecums dienās, mēnešos un gados
SELECT DATEDIFF(CURDATE(), @birthday) AS dienas,
       TIMESTAMPDIFF(MONTH, @birthday, CURDATE()) AS mēneši,
       TIMESTAMPDIFF(YEAR, @birthday, CURDATE()) AS gadi;
