{"id":225990,"date":"2022-08-17T13:49:00","date_gmt":"2022-08-17T10:49:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=225990"},"modified":"2022-11-08T01:41:41","modified_gmt":"2022-11-07T22:41:41","slug":"extraits-de-table-mysql-et-correctifs-aux-problemes-courants","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/extraits-de-table-mysql-et-correctifs-aux-problemes-courants\/","title":{"rendered":"Extraits de table MySQL et correctifs aux probl\u00e8mes courants"},"content":{"rendered":"\n<p>Extraits de table MySQL\u00a0?<\/p>\n<p>Oui, il y en a plusieurs dans cet article. Mais avant d&rsquo;en arriver l\u00e0, qu&rsquo;est-ce que MySQL? Commen\u00e7ons par la d\u00e9finition de MySQL. MySQL est un syst\u00e8me de gestion de base de donn\u00e9es relationnelle (SGBDR) open source soutenu par Oracle et bas\u00e9 sur le langage de requ\u00eate structur\u00e9 (SQL).<\/p>\n<p>Les applications qui utilisent la base de donn\u00e9es MySQL incluent TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB et Drupal. MySQL est \u00e9galement utilis\u00e9 dans de nombreux sites Web \u00e0 grande \u00e9chelle et de grande envergure, notamment Google (mais pas pour les recherches), Facebook, Twitter, Flickr et YouTube.<\/p>\n<p>Et apr\u00e8s toute cette introduction, vous r\u00e9alisez que MySQL est plus grand que vous ne le pensiez au d\u00e9part. A moins que vous ne soyez dans le milieu depuis un certain temps. Cependant, si vous \u00eates un nouveau venu et que vous souhaitez en savoir plus sur MySQL, la fa\u00e7on la plus simple de le faire est d&rsquo;utiliser des extraits de table MySQL.<\/p>\n<h2>Extraits de table MySQL<\/h2>\n<p><strong>Faire correspondre une cha\u00eene au d\u00e9but de la cha\u00eene<\/strong><\/p>\n<p><code>SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1<\/code><\/p>\n<p><strong>Si un nom n&rsquo;est pas pr\u00e9fix\u00e9 par &lsquo;The&rsquo;, ajoutez-le<\/strong><\/p>\n<p><code>UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'<\/code><\/p>\n<p><strong>Copier une colonne d&rsquo;une table \u00e0 une autre<\/strong><\/p>\n<p><code>INSERT INTO [table] (<\/code><\/p>\n<p><code>) SELECT FROM [table]<\/code><\/p>\n<p><strong>Supprimer tous les espaces blancs<\/strong><\/p>\n<p><code>UPDATE [table] SET<\/code><\/p>\n<p><code>= REPLACE(, ' ', '')<\/code><\/p>\n<p><strong>(c&rsquo;est BASH) supprimer toutes les tables d&rsquo;une base de donn\u00e9es<\/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>Modification du classement d&rsquo;une table et de toutes ses colonnes existantes<\/strong><\/p>\n<p><code>alter table [table] convert to character set utf8 collate utf8_general_ci;<\/code><\/p>\n<p><strong>MySQL Rechercher et remplacer<\/strong><\/p>\n<p><code>UPDATE files SET filepath = REPLACE(filepath,'path\/to\/search','path\/to\/replace');<\/code><\/p>\n<p><strong>S\u00e9lection d&rsquo;une ligne al\u00e9atoire dans MySQL<\/strong><\/p>\n<p><code>SELECT column FROM table ORDER BY RAND() LIMIT 1<\/code><\/p>\n<p><strong>Cr\u00e9er un CSV \u00e0 partir de 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>Rechercher des enregistrements en double<\/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>Correction du mauvais encodage des caract\u00e8res dans les donn\u00e9es 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>Recharger CSV dans 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 Trouver le code PHP dans la base de donn\u00e9es<\/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>G\u00e9n\u00e9rer une cha\u00eene al\u00e9atoire dans MySQL<\/strong><\/p>\n<p><code>SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring<\/code><\/p>\n<p><strong>Calculer l&rsquo;\u00e2ge \u00e0 partir de la date de naissance<\/strong><\/p>\n<p><code>SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) \/ 365);<\/code><\/p>\n<p><strong>Rechercher et remplacer<\/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>Choisir entre deux dates<\/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>Sauvegarder la base de donn\u00e9es MySQL dans un fichier SQL avec 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>comment calculer les 7 derniers jours<\/strong><\/p>\n<p><code>WHERE mydatefld &gt;= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)<\/code><\/p>\n<p><strong>vidage mysql<\/strong><\/p>\n<p><code>mysqldump -u [username] -p [password] [databasename] &gt; [backupfile.sql]<\/code><\/p>\n<p><strong>Remplacer Mysql<\/strong><\/p>\n<p>`# Remplacer la cha\u00eene dans tous les enregistrements d&rsquo;une table<br \/>\nUPDATE nom_table SET nom_colonne = REPLACE( nom_colonne, &lsquo;\/dev&rsquo;, &quot; );<\/p>\n<p>SELECT REPLACE( nom_colonne, &lsquo;\/dev&rsquo;, \u00ab\u00a0) FROM nom_table;`<\/p>\n<p><strong>Convertir le fuseau horaire en local<\/strong><\/p>\n<p><code>SELECT CONVERT_TZ(mydatefield,'US\/Pacific','CET') FROM mytable;<\/code><\/p>\n<p><strong>Rechercher et remplacer sur plusieurs lignes en 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>Comment enregistrer les r\u00e9sultats de MySQL dans un fichier externe<\/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>Ins\u00e9rer ou mettre \u00e0 jour si la cl\u00e9 unique existe d\u00e9j\u00e0<\/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 commandes de sauvegarde de base de donn\u00e9es<\/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>Importation MySQL<\/strong><\/p>\n<p><code>mysql -u [username] -p [dbname] &lt; [filename].sql<\/code><\/p>\n<p><strong>trouver des enregistrements en double<\/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 Rechercher et remplacer<\/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>Modifier le chemin du r\u00e9pertoire de fichiers Drupal<\/strong><\/p>\n<p><code>UPDATE FILES SET filepath = REPLACE(filepath, 'sites\/default\/files\/old\/','sites\/default\/files\/new\/');<\/code><\/p>\n<p><strong>Trouver toutes les tables de la base de donn\u00e9es MySQL contenant des noms de colonnes sp\u00e9cifiques<\/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>Trouver des valeurs qui apparaissent exactement une fois dans le tableau<\/strong><\/p>\n<p><code>SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )<\/code><\/p>\n<p><strong>Script MySql pour trouver des adresses e-mail invalides<\/strong><\/p>\n<p><code>SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'<\/code><\/p>\n<p><strong>Calcul de l&rsquo;\u00e2ge 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>Jointures \u00e0 gauche pour lier trois tables ou plus<\/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 correspond \u00e0 une liste d\u00e9limit\u00e9e par des virgules<\/strong><\/p>\n<p><code>WHERE id REGEXP '(,|^){$this-&gt;id}(,|$)'<\/code><\/p>\n<p><strong>Obtenez un enregistrement al\u00e9atoire bas\u00e9 sur le poids<\/strong><\/p>\n<p><code>SELECT * FROM Table ORDER BY Rand() * (1 \/ Weight<\/code><\/p>\n<p>Nous esp\u00e9rons que ces extraits de table MySQL correspondent \u00e0 ce que vous recherchiez. Nous mettrons \u00e0 jour cet article avec d&rsquo;autres extraits MySQL que nous rencontrerons \u00e0 l&rsquo;avenir, alors assurez-vous de le mettre en signet.<\/p>\n<p>Si vous avez appr\u00e9ci\u00e9 la lecture de cet article sur les extraits de table MySQL, vous devriez \u00e9galement lire ceux-ci\u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/creation-dun-systeme-crud-dans-wordpress-plugin-de-tables-wpdatatables\/\" title=\"Cr\u00e9ation d'un syst\u00e8me CRUD dans WordPress (2018)\" >Cr\u00e9ation d&rsquo;un syst\u00e8me CRUD dans WordPress (2018)<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/12-conseils-pour-creer-un-theme-ou-un-plugin-wordpress-reussi\/\" title=\"12 conseils pour cr\u00e9er un plugin ou un th\u00e8me WordPress Premium r\u00e9ussi\" >12 conseils pour cr\u00e9er un plugin ou un th\u00e8me WordPress Premium r\u00e9ussi<\/a><\/li>\n<li><a href=\"https:\/\/wpdatatables.com\/how-to-host-a-website\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Comment h\u00e9berger un site Web\u00a0: toutes les \u00e9tapes expliqu\u00e9es<\/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\">Optimisation du tableau WordPress WP_OPTIONS<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpdatatables.com\" class=\"external external_icon\">wpdatatables.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Extraits de table MySQL\u00a0? Oui, il y en a plusieurs dans cet article. Mais avant d&rsquo;en arriver l\u00e0, qu&rsquo;est-ce que MySQL ? Commen\u00e7ons par la d\u00e9finition de 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":[832,841,862],"tags":[1167],"class_list":["post-225990","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide-pour-les-debutants","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/225990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=225990"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/225990\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/206960"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=225990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=225990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=225990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}