{"id":226400,"date":"2022-08-17T13:34:00","date_gmt":"2022-08-17T10:34:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=226400"},"modified":"2022-11-08T04:32:16","modified_gmt":"2022-11-08T01:32:16","slug":"mysql-taulukon-katkelmia-ja-korjauksia-yleisiin-ongelmiin","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/mysql-taulukon-katkelmia-ja-korjauksia-yleisiin-ongelmiin\/","title":{"rendered":"MySQL-taulukon katkelmia ja korjauksia yleisiin ongelmiin"},"content":{"rendered":"\n<p>MySQL-taulukon katkelmia?<\/p>\n<p>Kyll\u00e4, niit\u00e4 on t\u00e4ss\u00e4 artikkelissa melko v\u00e4h\u00e4n. Mutta ennen kuin p\u00e4\u00e4semme siihen, mik\u00e4 on MySQL? Aloitetaan MySQL-m\u00e4\u00e4rityksest\u00e4. MySQL on Oraclen tukema avoimen l\u00e4hdekoodin relaatiotietokannan hallintaj\u00e4rjestelm\u00e4 (RDBMS), joka perustuu Structured Query Language (SQL) -kieleen.<\/p>\n<p>MySQL-tietokantaa k\u00e4ytt\u00e4v\u00e4t sovellukset ovat TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB ja Drupal. MySQL:\u00e4\u00e4 k\u00e4ytet\u00e4\u00e4n my\u00f6s monilla korkean profiilin suurilla verkkosivustoilla, mukaan lukien Google (tosin ei hakuihin), Facebook, Twitter, Flickr ja YouTube.<\/p>\n<p>Ja kaiken t\u00e4m\u00e4n johdannon j\u00e4lkeen ymm\u00e4rr\u00e4t, ett\u00e4 MySQL on suurempi kuin alun perin luulit. Ellei ole ollut alalla jonkin aikaa. Jos olet kuitenkin uusi tulokas ja haluat oppia lis\u00e4\u00e4 MySQL:st\u00e4, helpoin tapa tehd\u00e4 se on MySQL-taulukkokatkelmien avulla.<\/p>\n<h2>MySQL-taulukon katkelmia<\/h2>\n<p><strong>Yhdist\u00e4 merkkijono merkkijonon alussa<\/strong><\/p>\n<p><code>SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1<\/code><\/p>\n<p><strong>Jos nimen etuliitteen\u00e4 ei ole &#8217;The&#8217;, lis\u00e4\u00e4 se<\/strong><\/p>\n<p><code>UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'<\/code><\/p>\n<p><strong>Kopioi sarake taulukosta toiseen<\/strong><\/p>\n<p><code>INSERT INTO [table] (<\/code><\/p>\n<p><code>) SELECT FROM [table]<\/code><\/p>\n<p><strong>Poista kaikki v\u00e4lily\u00f6nnit<\/strong><\/p>\n<p><code>UPDATE [table] SET<\/code><\/p>\n<p><code>= REPLACE(, ' ', '')<\/code><\/p>\n<p><strong>(t\u00e4m\u00e4 on BASH) pudota kaikki tietokannan taulukot<\/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>Vaihda taulukon ja sen kaikkien olemassa olevien sarakkeiden lajitteluun<\/strong><\/p>\n<p><code>alter table [table] convert to character set utf8 collate utf8_general_ci;<\/code><\/p>\n<p><strong>MySQL Etsi ja korvaa<\/strong><\/p>\n<p><code>UPDATE files SET filepath = REPLACE(filepath,'path\/to\/search','path\/to\/replace');<\/code><\/p>\n<p><strong>Satunnaisen rivin valitseminen MySQL:ss\u00e4<\/strong><\/p>\n<p><code>SELECT column FROM table ORDER BY RAND() LIMIT 1<\/code><\/p>\n<p><strong>Luo CSV MySQL:st\u00e4<\/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>Etsi p\u00e4\u00e4llekk\u00e4isi\u00e4 tietueita<\/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>Virheellisen merkkikoodauksen korjaaminen MySQL-tiedoissa<\/strong><\/p>\n<p><code>UPDATE table SET column=CONVERT(CONVERT(CONVERT(column USING latin1) USING binary) using utf8);<\/code><\/p>\n<p><strong>Lataa CSV takaisin mySQL:\u00e4\u00e4n<\/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 Etsi PHP-koodi tietokannasta<\/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>Luo satunnainen merkkijono MySQL:ss\u00e4<\/strong><\/p>\n<p><code>SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring<\/code><\/p>\n<p><strong>Laske ik\u00e4 syntym\u00e4p\u00e4iv\u00e4st\u00e4<\/strong><\/p>\n<p><code>SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) \/ 365);<\/code><\/p>\n<p><strong>Etsi ja korvaa<\/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>Valitse kahdesta p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4st\u00e4<\/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>Varmuuskopioi MySQL-tietokanta SQL-tiedostoon mysqldumpilla<\/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>miten lasketaan viimeiset 7 p\u00e4iv\u00e4\u00e4<\/strong><\/p>\n<p><code>WHERE mydatefld &gt;= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)<\/code><\/p>\n<p><strong>mysql dump<\/strong><\/p>\n<p><code>mysqldump -u [username] -p [password] [databasename] &gt; [backupfile.sql]<\/code><\/p>\n<p><strong>Mysql korvaa<\/strong><\/p>\n<p>`# Korvaa merkkijono kaikissa taulukon tietueissa<br \/>\nP\u00c4IVITYS taulukon_nimi SET sarakkeen_nimi = REPLACE( sarakkeen_nimi, &#8217;\/dev&#8217;, &quot; );<\/p>\n<p>SELECT REPLACE( sarakkeen_nimi, &#8217;\/dev&#8217;, &#8221;) FROM taulukon_nimi;`<\/p>\n<p><strong>Muunna aikavy\u00f6hyke paikalliseksi<\/strong><\/p>\n<p><code>SELECT CONVERT_TZ(mydatefield,'US\/Pacific','CET') FROM mytable;<\/code><\/p>\n<p><strong>Etsi ja korvaa useilla riveill\u00e4 SQL:ss\u00e4<\/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>Kuinka tallentaa tulokset MySQL:st\u00e4 ulkoiseen tiedostoon<\/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>Lis\u00e4\u00e4 tai p\u00e4ivit\u00e4, jos yksil\u00f6llinen avain on jo olemassa<\/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 tietokannan varmuuskopiointikomennot<\/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>MySql tuonti<\/strong><\/p>\n<p><code>mysql -u [username] -p [dbname] &lt; [filename].sql<\/code><\/p>\n<p><strong>l\u00f6yt\u00e4\u00e4 p\u00e4\u00e4llekk\u00e4isi\u00e4 tietueita<\/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>MySQL Etsi ja korvaa<\/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>Muuta Drupal-tiedoston hakemistopolkua<\/strong><\/p>\n<p><code>UPDATE FILES SET filepath = REPLACE(filepath, 'sites\/default\/files\/old\/','sites\/default\/files\/new\/');<\/code><\/p>\n<p><strong>Etsi kaikki MySQL-tietokannasta taulukot, jotka sis\u00e4lt\u00e4v\u00e4t tiettyj\u00e4 sarakkeiden nimi\u00e4<\/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>Etsi taulukosta arvot, jotka esiintyv\u00e4t t\u00e4sm\u00e4lleen kerran<\/strong><\/p>\n<p><code>SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )<\/code><\/p>\n<p><strong>MySql-komentosarja virheellisten s\u00e4hk\u00f6postiosoitteiden l\u00f6yt\u00e4miseksi<\/strong><\/p>\n<p><code>SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'<\/code><\/p>\n<p><strong>MySQL-i\u00e4n laskenta<\/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 linkitt\u00e4\u00e4 kolme tai useampia taulukkoja<\/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 -hakuluettelo pilkuilla eroteltuna<\/strong><\/p>\n<p><code>WHERE id REGEXP '(,|^){$this-&gt;id}(,|$)'<\/code><\/p>\n<p><strong>Hanki satunnainen enn\u00e4tys painon perusteella<\/strong><\/p>\n<p><code>SELECT * FROM Table ORDER BY Rand() * (1 \/ Weight<\/code><\/p>\n<p>Toivomme, ett\u00e4 n\u00e4m\u00e4 MySQL-taulukkokatkelmat ovat etsim\u00e4si asia. P\u00e4ivit\u00e4mme t\u00e4m\u00e4n artikkelin muilla MySQL-katkelmilla, joita t\u00f6rm\u00e4\u00e4mme tulevaisuudessa, joten muista lis\u00e4t\u00e4 se kirjanmerkkeihin.<\/p>\n<p>Jos pidit t\u00e4m\u00e4n artikkelin lukemisesta MySQL-taulukon katkelmista, sinun tulee lukea my\u00f6s n\u00e4m\u00e4:<\/p>\n<ul>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/crud-jaerjestelmaen-luominen-wordpressissae-wpdatatables-tables-plugin\/\" title=\"CRUD-j\u00e4rjestelm\u00e4n luominen WordPressiss\u00e4 (2018)\" >CRUD-j\u00e4rjestelm\u00e4n luominen WordPressiss\u00e4 (2018)<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/12-vinkkiae-onnistuneen-wordpress-teeman-tai-laajennuksen-luomiseen\/\" title=\"12 vinkki\u00e4 onnistuneen WordPress Premium -laajennuksen tai -teeman luomiseen\" >12 vinkki\u00e4 onnistuneen WordPress Premium -laajennuksen tai -teeman luomiseen<\/a><\/li>\n<li><a href=\"https:\/\/wpdatatables.com\/how-to-host-a-website\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Web-sivuston is\u00e4nn\u00f6iminen: Kaikki vaiheet selitetty<\/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\">WordPress WP_OPTIONS -taulukon optimointi<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpdatatables.com\" class=\"external external_icon\">wpdatatables.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>MySQL-taulukon katkelmia? Kyll\u00e4, niit\u00e4 on t\u00e4ss\u00e4 artikkelissa melko v\u00e4h\u00e4n. Mutta ennen kuin p\u00e4\u00e4semme siihen, mik\u00e4 on MySQL? Aloitetaan MySQL-m\u00e4\u00e4rityksest\u00e4.<\/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":[834,843,864],"tags":[1166],"class_list":["post-226400","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-opas-aloittelijoille","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/226400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=226400"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/226400\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/206960"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=226400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=226400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=226400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}