Fragmenty tabeli MySQL i poprawki typowych problemów
Fragmenty tabeli MySQL?
Tak, w tym artykule jest ich sporo. Ale zanim do tego dojdziemy, czym jest MySQL? Zacznijmy od definicji MySQL. MySQL to wspierany przez Oracle system zarządzania relacyjnymi bazami danych typu open source (RDBMS) oparty na strukturalnym języku zapytań (SQL).
Aplikacje korzystające z bazy danych MySQL to TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB i Drupal. MySQL jest również używany w wielu znanych, dużych witrynach, w tym w Google (choć nie do wyszukiwania), Facebooku, Twitterze, Flickr i YouTube.
Po całym tym wstępie zdajesz sobie sprawę, że MySQL jest większy niż początkowo sądziłeś. Chyba że jesteś w branży od jakiegoś czasu. Jeśli jednak jesteś nowicjuszem i chcesz dowiedzieć się więcej o MySQL, najłatwiej to zrobić za pomocą fragmentów tabeli MySQL.
Fragmenty tabeli MySQL
Dopasuj ciąg na początku ciągu
SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1
Jeśli nazwa nie jest poprzedzona przedrostkiem „The", dodaj ją
UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'
Skopiuj kolumnę z jednej tabeli do drugiej
INSERT INTO [table] (
) SELECT FROM [table]
Usuń wszystkie białe znaki
UPDATE [table] SET
= REPLACE(, ' ', '')
(to jest BASH) upuść wszystkie tabele w bazie danych
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Zmiana sortowania tabeli i wszystkich jej istniejących kolumn
alter table [table] convert to character set utf8 collate utf8_general_ci;
Znajdź i zamień MySQL
UPDATE files SET filepath = REPLACE(filepath,'path/to/search','path/to/replace');
Wybieranie losowego wiersza w MySQL
SELECT column FROM table ORDER BY RAND() LIMIT 1
Utwórz CSV z MySQL
SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';
Znajdź zduplikowane rekordy
SELECT id, COUNT(*) as n FROM my_table GROUP BY id HAVING n >1;
Poprawianie nieprawidłowego kodowania znaków w danych MySQL
UPDATE table SET column=CONVERT(CONVERT(CONVERT(column USING latin1) USING binary) using utf8);
Załaduj CSV z powrotem do mySQL
LOAD DATA local INFILE 'unique.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' (col1, col2, col3)
Drupal 6.x Znajdź kod PHP w bazie danych
select nid, vid from node_revisions where format in (select format from filters where module = 'php' and delta = 0); select cid, nid from comments where format in (select format from filters where module = 'php' and delta = 0); select bid, info from boxes where format in (select format from filters where module = 'php' and delta = 0);
Generuj losowy ciąg w MySQL
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring
Oblicz wiek od daty urodzenia
SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) / 365);
Znaleźć zamiennik
UPDATE table_name SET column_name = REPLACE(column_name, 'http://oldcontent.com', 'http://newcontent.com');
Wybierz między dwiema datami
SELECT * FROM files LEFT JOIN (dates) ON files.uploaded_id = dates.id WHERE date BETWEEN '2009-01-01' AND '2009-12-31'
Utwórz kopię zapasową bazy danych MySQL do pliku SQL za pomocą mysqldump
mysqldump --user=username --password=password --opt --add-drop-database --databases databasename > ~/path/to/file.sql
jak obliczyć ostatnie 7 dni
WHERE mydatefld >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
zrzut mysql
mysqldump -u [username] -p [password] [databasename] > [backupfile.sql]
Zastąp MySQL
`# Zastąp ciąg znaków we wszystkich rekordach z tabeli
UPDATE nazwa_tabeli SET nazwa_kolumny = REPLACE( nazwa_kolumny, '/dev’, ” );
SELECT REPLACE( nazwa_kolumny, '/dev’, „) FROM nazwa_tabeli;`
Konwertuj strefę czasową na lokalną
SELECT CONVERT_TZ(mydatefield,'US/Pacific','CET') FROM mytable;
Wyszukaj i zamień w wielu wierszach w SQL
UPDATE wp_posts SET post_content = REPLACE(post_content, 'staging.server.com', 'www.productionserver.com');
Jak zapisać wyniki z MySQL w zewnętrznym pliku?
echo "SELECT columns FROM table_name WHERE whatever='something'" | /path/to/mysql -uUSERNAME -pPASSWORD DATABASENAME > /tmp/outfile.txt;
Wstaw lub zaktualizuj, jeśli unikalny klucz już istnieje
INSERT INTO `tableName` VALUES (?,?,?,'-1',?,'0') ON DUPLICATE KEY UPDATE `id` = ?, `foo` = ?, `bar` = ?
mySQL – polecenia kopii zapasowej bazy danych
-- dump mySQL database to file: VAR=$(date +�%y-%m-%d�); mysqldump -v -uUSERNAME -pPASSWORD -hlocalhost DATABASENAME > /BACKUPDIR/$VAR-DATABASENAME.sql ;
-- dump mySQL database to file and then move it: VAR=$(date +�%y-%m-%d�); mysqldump -v -uUSERNAME -pPASSWORD -hlocalhost DATABASENAME > /BACKUPDIR/$VAR-DATABASENAME.sql ; mv /BACKUPDIR/DATABASENAME.sql /OTHERBACKUPDIR/$VAR-DATABASENAME.sql ;
Import MySQL
mysql -u [username] -p [dbname] < [filename].sql
znajdź zduplikowane rekordy
select address, count(address) as cnt from mailing_list group by address having cnt > 1 order by cnt;
Znajdź i zamień MySQL
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, 'find this string', 'replace found string with this string');
Zmień ścieżkę katalogu plików Drupala
UPDATE FILES SET filepath = REPLACE(filepath, 'sites/default/files/old/','sites/default/files/new/');
Znajdź wszystkie tabele w bazie danych MySQL zawierające określone nazwy kolumn
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase';
Znajdź wartości, które występują dokładnie raz w tabeli
SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )
Skrypt MySql do wyszukiwania nieprawidłowych adresów e-mail
SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'
Obliczanie wieku MySQL
DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) >= 65
Left Joins, aby połączyć trzy lub więcej stołów
select * from (bdg left join res on bdg.bid = res.bid) left join dom on res.rid = dom.rid where dom.rid is NULL;
MySQL REGEX pasuje do listy rozdzielanej przecinkami
WHERE id REGEXP '(,|^){$this->id}(,|$)'
Uzyskaj losowy rekord na podstawie wagi
SELECT * FROM Table ORDER BY Rand() * (1 / Weight
Mamy nadzieję, że te fragmenty tabeli MySQL są tym, czego szukałeś. Zaktualizujemy ten artykuł o inne fragmenty MySQL, które napotkamy w przyszłości, więc upewnij się, że dodałeś go do zakładek.
Jeśli podobał Ci się ten artykuł o fragmentach tabel MySQL, powinieneś przeczytać również te:
- Tworzenie systemu CRUD w WordPressie (2018)
- 12 wskazówek dotyczących tworzenia udanej wtyczki lub motywu WordPress Premium
- Jak hostować witrynę internetową: wszystkie kroki wyjaśnione
- Optymalizacja tabeli WP_OPTIONS WordPress