{"id":225956,"date":"2022-08-17T13:13:00","date_gmt":"2022-08-17T10:13:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=225956"},"modified":"2022-11-08T01:30:32","modified_gmt":"2022-11-07T22:30:32","slug":"fragmenty-tabeli-mysql-i-poprawki-typowych-problemow","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/fragmenty-tabeli-mysql-i-poprawki-typowych-problemow\/","title":{"rendered":"Fragmenty tabeli MySQL i poprawki typowych problem\u00f3w"},"content":{"rendered":"\n<p>Fragmenty tabeli MySQL?<\/p>\n<p>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\u0105dzania relacyjnymi bazami danych typu open source (RDBMS) oparty na strukturalnym j\u0119zyku zapyta\u0144 (SQL).<\/p>\n<p>Aplikacje korzystaj\u0105ce z bazy danych MySQL to TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB i Drupal. MySQL jest r\u00f3wnie\u017c u\u017cywany w wielu znanych, du\u017cych witrynach, w tym w Google (cho\u0107 nie do wyszukiwania), Facebooku, Twitterze, Flickr i YouTube.<\/p>\n<p>Po ca\u0142ym tym wst\u0119pie zdajesz sobie spraw\u0119, \u017ce MySQL jest wi\u0119kszy ni\u017c pocz\u0105tkowo s\u0105dzi\u0142e\u015b. Chyba \u017ce jeste\u015b w bran\u017cy od jakiego\u015b czasu. Je\u015bli jednak jeste\u015b nowicjuszem i chcesz dowiedzie\u0107 si\u0119 wi\u0119cej o MySQL, naj\u0142atwiej to zrobi\u0107 za pomoc\u0105 fragment\u00f3w tabeli MySQL.<\/p>\n<h2>Fragmenty tabeli MySQL<\/h2>\n<p><strong>Dopasuj ci\u0105g na pocz\u0105tku ci\u0105gu<\/strong><\/p>\n<p><code>SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1<\/code><\/p>\n<p><strong>Je\u015bli nazwa nie jest poprzedzona przedrostkiem \u201eThe&quot;, dodaj j\u0105<\/strong><\/p>\n<p><code>UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'<\/code><\/p>\n<p><strong>Skopiuj kolumn\u0119 z jednej tabeli do drugiej<\/strong><\/p>\n<p><code>INSERT INTO [table] (<\/code><\/p>\n<p><code>) SELECT FROM [table]<\/code><\/p>\n<p><strong>Usu\u0144 wszystkie bia\u0142e znaki<\/strong><\/p>\n<p><code>UPDATE [table] SET<\/code><\/p>\n<p><code>= REPLACE(, ' ', '')<\/code><\/p>\n<p><strong>(to jest BASH) upu\u015b\u0107 wszystkie tabele w bazie danych<\/strong><\/p>\n<p><code>mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]<\/code><\/p>\n<p><strong>Zmiana sortowania tabeli i wszystkich jej istniej\u0105cych kolumn<\/strong><\/p>\n<p><code>alter table [table] convert to character set utf8 collate utf8_general_ci;<\/code><\/p>\n<p><strong>Znajd\u017a i zamie\u0144 MySQL<\/strong><\/p>\n<p><code>UPDATE files SET filepath = REPLACE(filepath,'path\/to\/search','path\/to\/replace');<\/code><\/p>\n<p><strong>Wybieranie losowego wiersza w MySQL<\/strong><\/p>\n<p><code>SELECT column FROM table ORDER BY RAND() LIMIT 1<\/code><\/p>\n<p><strong>Utw\u00f3rz CSV z MySQL<\/strong><\/p>\n<p><code>SELECT a,b,c FROM my_table INTO OUTFILE '\/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';<\/code><\/p>\n<p><strong>Znajd\u017a zduplikowane rekordy<\/strong><\/p>\n<p><code>SELECT id, COUNT(*) as n FROM my_table GROUP BY id HAVING n &gt;1;<\/code><\/p>\n<p><strong>Poprawianie nieprawid\u0142owego kodowania znak\u00f3w w danych MySQL<\/strong><\/p>\n<p><code>UPDATE table SET column=CONVERT(CONVERT(CONVERT(column USING latin1) USING binary) using utf8);<\/code><\/p>\n<p><strong>Za\u0142aduj CSV z powrotem do mySQL<\/strong><\/p>\n<p><code>LOAD DATA local INFILE 'unique.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' (col1, col2, col3)<\/code><\/p>\n<p><strong>Drupal 6.x Znajd\u017a kod PHP w bazie danych<\/strong><\/p>\n<p><code>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);<\/code><\/p>\n<p><strong>Generuj losowy ci\u0105g w MySQL<\/strong><\/p>\n<p><code>SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring<\/code><\/p>\n<p><strong>Oblicz wiek od daty urodzenia<\/strong><\/p>\n<p><code>SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) \/ 365);<\/code><\/p>\n<p><strong>Znale\u017a\u0107 zamiennik<\/strong><\/p>\n<p><code>UPDATE table_name SET column_name = REPLACE(column_name, 'http:\/\/oldcontent.com', 'http:\/\/newcontent.com');<\/code><\/p>\n<p><strong>Wybierz mi\u0119dzy dwiema datami<\/strong><\/p>\n<p><code>SELECT * FROM files LEFT JOIN (dates) ON files.uploaded_id = dates.id WHERE date BETWEEN '2009-01-01' AND '2009-12-31'<\/code><\/p>\n<p><strong>Utw\u00f3rz kopi\u0119 zapasow\u0105 bazy danych MySQL do pliku SQL za pomoc\u0105 mysqldump<\/strong><\/p>\n<p><code>mysqldump --user=username --password=password --opt --add-drop-database --databases databasename &gt; ~\/path\/to\/file.sql<\/code><\/p>\n<p><strong>jak obliczy\u0107 ostatnie 7 dni<\/strong><\/p>\n<p><code>WHERE mydatefld &gt;= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)<\/code><\/p>\n<p><strong>zrzut mysql<\/strong><\/p>\n<p><code>mysqldump -u [username] -p [password] [databasename] &gt; [backupfile.sql]<\/code><\/p>\n<p><strong>Zast\u0105p MySQL<\/strong><\/p>\n<p>`# Zast\u0105p ci\u0105g znak\u00f3w we wszystkich rekordach z tabeli<br \/>\nUPDATE nazwa_tabeli SET nazwa_kolumny = REPLACE( nazwa_kolumny, '\/dev&#8217;, &#8221; );<\/p>\n<p>SELECT REPLACE( nazwa_kolumny, '\/dev&#8217;, &#8222;) FROM nazwa_tabeli;`<\/p>\n<p><strong>Konwertuj stref\u0119 czasow\u0105 na lokaln\u0105<\/strong><\/p>\n<p><code>SELECT CONVERT_TZ(mydatefield,'US\/Pacific','CET') FROM mytable;<\/code><\/p>\n<p><strong>Wyszukaj i zamie\u0144 w wielu wierszach w SQL<\/strong><\/p>\n<p><code>UPDATE wp_posts SET post_content = REPLACE(post_content, 'staging.server.com', 'www.productionserver.com');<\/code><\/p>\n<p><strong>Jak zapisa\u0107 wyniki z MySQL w zewn\u0119trznym pliku?<\/strong><\/p>\n<p><code>echo \"SELECT columns FROM table_name WHERE whatever='something'\" | \/path\/to\/mysql -uUSERNAME -pPASSWORD DATABASENAME &gt; \/tmp\/outfile.txt;<\/code><\/p>\n<p><strong>Wstaw lub zaktualizuj, je\u015bli unikalny klucz ju\u017c istnieje<\/strong><\/p>\n<p><code>INSERT INTO `tableName` VALUES (?,?,?,'-1',?,'0') ON DUPLICATE KEY UPDATE `id` = ?, `foo` = ?, `bar` = ?<\/code><\/p>\n<p><strong>mySQL \u2013 polecenia kopii zapasowej bazy danych<\/strong><\/p>\n<p><code>-- dump mySQL database to file: VAR=$(date +\u00c3\u00a2\u00ef\u00bf\u00bd\u00ef\u00bf\u00bd%y-%m-%d\u00c3\u00a2\u00ef\u00bf\u00bd\u00ef\u00bf\u00bd); mysqldump -v -uUSERNAME -pPASSWORD -hlocalhost DATABASENAME &gt; \/BACKUPDIR\/$VAR-DATABASENAME.sql ;<\/code><\/p>\n<p><code>-- dump mySQL database to file and then move it: VAR=$(date +\u00c3\u00a2\u00ef\u00bf\u00bd\u00ef\u00bf\u00bd%y-%m-%d\u00c3\u00a2\u00ef\u00bf\u00bd\u00ef\u00bf\u00bd); mysqldump -v -uUSERNAME -pPASSWORD -hlocalhost DATABASENAME &gt; \/BACKUPDIR\/$VAR-DATABASENAME.sql ; mv \/BACKUPDIR\/DATABASENAME.sql \/OTHERBACKUPDIR\/$VAR-DATABASENAME.sql ;<\/code><\/p>\n<p><strong>Import MySQL<\/strong><\/p>\n<p><code>mysql -u [username] -p [dbname] &lt; [filename].sql<\/code><\/p>\n<p><strong>znajd\u017a zduplikowane rekordy<\/strong><\/p>\n<p><code>select address, count(address) as cnt from mailing_list group by address having cnt &gt; 1 order by cnt;<\/code><\/p>\n<p><strong>Znajd\u017a i zamie\u0144 MySQL<\/strong><\/p>\n<p><code>update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, 'find this string', 'replace found string with this string');<\/code><\/p>\n<p><strong>Zmie\u0144 \u015bcie\u017ck\u0119 katalogu plik\u00f3w Drupala<\/strong><\/p>\n<p><code>UPDATE FILES SET filepath = REPLACE(filepath, 'sites\/default\/files\/old\/','sites\/default\/files\/new\/');<\/code><\/p>\n<p><strong>Znajd\u017a wszystkie tabele w bazie danych MySQL zawieraj\u0105ce okre\u015blone nazwy kolumn<\/strong><\/p>\n<p><code>SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase';<\/code><\/p>\n<p><strong>Znajd\u017a warto\u015bci, kt\u00f3re wyst\u0119puj\u0105 dok\u0142adnie raz w tabeli<\/strong><\/p>\n<p><code>SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )<\/code><\/p>\n<p><strong>Skrypt MySql do wyszukiwania nieprawid\u0142owych adres\u00f3w e-mail<\/strong><\/p>\n<p><code>SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'<\/code><\/p>\n<p><strong>Obliczanie wieku MySQL<\/strong><\/p>\n<p><code>DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') &lt; DATE_FORMAT(DOB, '00-%m-%d')) &gt;= 65<\/code><\/p>\n<p><strong>Left Joins, aby po\u0142\u0105czy\u0107 trzy lub wi\u0119cej sto\u0142\u00f3w<\/strong><\/p>\n<p><code>select * from (bdg left join res on bdg.bid = res.bid) left join dom on res.rid = dom.rid where dom.rid is NULL;<\/code><\/p>\n<p><strong>MySQL REGEX pasuje do listy rozdzielanej przecinkami<\/strong><\/p>\n<p><code>WHERE id REGEXP '(,|^){$this-&gt;id}(,|$)'<\/code><\/p>\n<p><strong>Uzyskaj losowy rekord na podstawie wagi<\/strong><\/p>\n<p><code>SELECT * FROM Table ORDER BY Rand() * (1 \/ Weight<\/code><\/p>\n<p>Mamy nadziej\u0119, \u017ce te fragmenty tabeli MySQL s\u0105 tym, czego szuka\u0142e\u015b. Zaktualizujemy ten artyku\u0142 o inne fragmenty MySQL, kt\u00f3re napotkamy w przysz\u0142o\u015bci, wi\u0119c upewnij si\u0119, \u017ce doda\u0142e\u015b go do zak\u0142adek.<\/p>\n<p>Je\u015bli podoba\u0142 Ci si\u0119 ten artyku\u0142 o fragmentach tabel MySQL, powiniene\u015b przeczyta\u0107 r\u00f3wnie\u017c te:<\/p>\n<ul>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/tworzenie-systemu-crud-w-wordpressie-wpdatatables-tables-plugin\/\" title=\"Tworzenie systemu CRUD w WordPressie (2018)\" >Tworzenie systemu CRUD w WordPressie (2018)<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/pl\/12-wskazowek-dotyczacych-tworzenia-udanego-motywu-lub-wtyczki-wordpress\/\" title=\"12 wskaz\u00f3wek dotycz\u0105cych tworzenia udanej wtyczki lub motywu WordPress Premium\" >12 wskaz\u00f3wek dotycz\u0105cych tworzenia udanej wtyczki lub motywu WordPress Premium<\/a><\/li>\n<li><a href=\"https:\/\/wpdatatables.com\/how-to-host-a-website\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jak hostowa\u0107 witryn\u0119 internetow\u0105: wszystkie kroki wyja\u015bnione<\/a><\/li>\n<li><a href=\"https:\/\/websensepro.com\/blog\/improve-database-performance-by-cleaning-wp_options-table\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Optymalizacja tabeli WP_OPTIONS WordPress<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpdatatables.com\" class=\"external external_icon\">wpdatatables.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fragmenty tabeli MySQL? Tak, w tym artykule jest ich sporo. Ale zanim do tego dojdziemy, czym jest MySQL? Zacznijmy od definicji MySQL.<\/p>\n","protected":false},"author":1,"featured_media":206960,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[836,845,866],"tags":[1169],"class_list":["post-225956","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-przewodnik-dla-poczatkujacych","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/225956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=225956"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/225956\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/206960"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=225956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=225956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=225956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}