zabezpieczenie mariaDB po instalacji
Kategoria: MySQL
sql – update z podzapytaniem
Tabela łącząca posiada wpisy powiązane z usuniętymi rekordami suits. Dla tych rekordów zerujemy klucz obcy.
UPDATE ingredients_suits si SET suit_id = 0 WHERE NOT EXISTS (
SELECT id FROM suits s WHERE s.id = si.suit_id
);
Można skasować rekordy tabeli łączącej które mają wyzerowany klucz obcy
DELETE FROM ingredients_suits WHERE suit_id=0;
MySQL – MATCH() AGAINST()
Wyszukiwanie tekstu w wielu polach tabeli
WHERE MATCH (title, body) AGAINST ('any text');
MySQL – extract()
Zwraca składnik z daty np. rok
SELECT EXTRACT( MONTH FROM "2017-06-15" );
SQL Update INNER JOIN
MySQL DATE_FORMAT()
DATE_FORMAT("2017-06-15", "%Y")
MySQL Adddate()
Zwraca nową datę po dodaniu odcinka czasu
ADDDATE( date, INTERVAL expr unit) ); ADDDATE( expr, days) );
Dodaje 10 dni do podanej daty (pierwszy argument)
SELECT ADDDATE( '2010-02-15', INTERVAL 10 DAY ) AS new_date; new_date -------------- 2010-02-25
MySQL Datediff()
Zwraca ilość dni pomiędzy dwoma datami lub znacznikami czasu
DATEDIFF( expr1, expr2 );
SELECT DATEDIFF( '2008-05-17 11:31:31','2008-04-28' ) ;
+----------------------------------------------+
| DATEDIFF('2008-05-17 11:31:31','2008-04-28') |
+----------------------------------------------+
| 19 |
+----------------------------------------------+
MySQL Coalesce()
Zwraca pierwszą wartość (z listy argumentów) niebędącą NULL lub NULL (jeśli takiej nie ma)
COALESCE( value1, value2, value3, ...)
Zwraca imię oraz pierwszy z maili – argumentami są nazwy kolumn
SELECT name, COALESCE( email_company, email_private, email_social) FROM users;