Snippets de tabela MySQL e correções para problemas comuns
Fragmentos de tabela MySQL?
Sim, existem alguns deles neste artigo. Mas antes de chegarmos a isso, o que é MySQL? Vamos começar com a definição do MySQL. MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto baseado em Oracle baseado em Structured Query Language (SQL).
Os aplicativos que usam o banco de dados MySQL incluem TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB e Drupal. O MySQL também é usado em muitos sites de grande porte e de alto perfil, incluindo Google (embora não para pesquisas), Facebook, Twitter, Flickr e YouTube.
E depois de toda essa introdução, você percebe que o MySQL é maior do que você pensava inicialmente. A menos que você tenha estado por aí por um tempo na indústria. No entanto, se você é um novato e deseja aprender mais sobre o MySQL, a maneira mais fácil de fazer isso é com trechos de tabela do MySQL.
Fragmentos de tabela MySQL
Corresponder a uma string no início da string
SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1
Se um nome não tiver o prefixo ‘The ‘, adicione-o
UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'
Copiar uma coluna de uma tabela para outra
INSERT INTO [table] (
) SELECT FROM [table]
Remover todos os espaços em branco
UPDATE [table] SET
= REPLACE(, ' ', '')
(este é BASH) descarta todas as tabelas em um banco de dados
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Alterar para agrupamento de uma tabela e todas as suas colunas existentes
alter table [table] convert to character set utf8 collate utf8_general_ci;
MySQL Localizar e Substituir
UPDATE files SET filepath = REPLACE(filepath,'path/to/search','path/to/replace');
Selecionando uma linha aleatória no MySQL
SELECT column FROM table ORDER BY RAND() LIMIT 1
Criar CSV a partir do MySQL
SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';
Encontrar registros duplicados
SELECT id, COUNT(*) as n FROM my_table GROUP BY id HAVING n >1;
Corrigindo a codificação de caracteres errada em dados MySQL
UPDATE table SET column=CONVERT(CONVERT(CONVERT(column USING latin1) USING binary) using utf8);
Carregar CSV de volta no mySQL
LOAD DATA local INFILE 'unique.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' (col1, col2, col3)
Drupal 6.x Localizar código PHP no banco de dados
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);
Gerar string aleatória no MySQL
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring
Calcular a idade a partir da data de nascimento
SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) / 365);
Localizar e substituir
UPDATE table_name SET column_name = REPLACE(column_name, 'http://oldcontent.com', 'http://newcontent.com');
Selecione entre duas datas
SELECT * FROM files LEFT JOIN (dates) ON files.uploaded_id = dates.id WHERE date BETWEEN '2009-01-01' AND '2009-12-31'
Backup do banco de dados MySQL para arquivo SQL com mysqldump
mysqldump --user=username --password=password --opt --add-drop-database --databases databasename > ~/path/to/file.sql
como calcular últimos 7 dias
WHERE mydatefld >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
despejo do mysql
mysqldump -u [username] -p [password] [databasename] > [backupfile.sql]
Substituição do MySQL
`# Substitui string em todos os registros de uma tabela
UPDATE table_name SET column_name = REPLACE( column_name, ‘/dev’, " );
SELECT REPLACE( nome_da_coluna, ‘/dev’, “) FROM nome_da_tabela;`
Converter fuso horário para local
SELECT CONVERT_TZ(mydatefield,'US/Pacific','CET') FROM mytable;
Pesquisar e substituir em várias linhas no SQL
UPDATE wp_posts SET post_content = REPLACE(post_content, 'staging.server.com', 'www.productionserver.com');
Como salvar resultados do MySQL em um arquivo externo
echo "SELECT columns FROM table_name WHERE whatever='something'" | /path/to/mysql -uUSERNAME -pPASSWORD DATABASENAME > /tmp/outfile.txt;
Insira ou atualize se a chave exclusiva já existir
INSERT INTO `tableName` VALUES (?,?,?,'-1',?,'0') ON DUPLICATE KEY UPDATE `id` = ?, `foo` = ?, `bar` = ?
mySQL – comandos de backup de banco de dados
-- 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 ;
Importação do MySQL
mysql -u [username] -p [dbname] < [filename].sql
encontrar registros duplicados
select address, count(address) as cnt from mailing_list group by address having cnt > 1 order by cnt;
MySQL Localizar e Substituir
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, 'find this string', 'replace found string with this string');
Alterar o caminho do diretório do arquivo Drupal
UPDATE FILES SET filepath = REPLACE(filepath, 'sites/default/files/old/','sites/default/files/new/');
Encontre todas as tabelas no banco de dados MySQL contendo nomes de colunas específicos
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase';
Encontrar valores que ocorrem exatamente uma vez na tabela
SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )
Script MySQL para encontrar endereços de e-mail inválidos
SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'
Cálculo da idade do MySQL
DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) >= 65
Left Joins para vincular três ou mais tabelas
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 corresponde à lista delimitada por vírgulas
WHERE id REGEXP '(,|^){$this->id}(,|$)'
Obter registro aleatório com base no peso
SELECT * FROM Table ORDER BY Rand() * (1 / Weight
Esperamos que esses trechos de tabela MySQL sejam o que você estava procurando. Atualizaremos este artigo com outros trechos do MySQL que encontrarmos no futuro, portanto, certifique-se de adicioná-lo aos favoritos.
Se você gostou de ler este artigo sobre trechos de tabela MySQL, você também deve ler estes:
- Criando um sistema CRUD no WordPress (2018)
- 12 dicas para criar um plugin ou tema premium do WordPress bem-sucedido
- Como hospedar um site: todas as etapas explicadas
- Otimização da tabela WordPress WP_OPTIONS