Fragmentos de tabla MySQL y soluciones a problemas comunes
Fragmentos de tabla MySQL?
Sí, hay bastantes de ellos en este artículo. Pero antes de llegar a eso, ¿qué es MySQL? Comencemos con la definición de MySQL. MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto respaldado por Oracle basado en el lenguaje de consulta estructurado (SQL).
Las aplicaciones que utilizan la base de datos MySQL incluyen TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB y Drupal. MySQL también se usa en muchos sitios web de alto perfil y gran escala, incluidos Google (aunque no para búsquedas), Facebook, Twitter, Flickr y YouTube.
Y después de toda esa introducción, te das cuenta de que MySQL es más grande de lo que pensabas inicialmente. A menos que hayas estado en la industria por un tiempo. Sin embargo, si es un principiante y desea obtener más información sobre MySQL, la forma más fácil de hacerlo es con fragmentos de tabla de MySQL.
Fragmentos de tabla MySQL
Coincide con una cadena al principio de la cadena
SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1
Si un nombre no tiene el prefijo ‘El’, agréguelo
UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'
Copiar una columna de una tabla a otra
INSERT INTO [table] (
) SELECT FROM [table]
Eliminar todos los espacios en blanco
UPDATE [table] SET
= REPLACE(, ' ', '')
(esto es BASH) suelte todas las tablas en una base de datos
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Cambiar a la intercalación de una tabla y todas sus columnas existentes
alter table [table] convert to character set utf8 collate utf8_general_ci;
Buscar y reemplazar MySQL
UPDATE files SET filepath = REPLACE(filepath,'path/to/search','path/to/replace');
Seleccionar una fila aleatoria en MySQL
SELECT column FROM table ORDER BY RAND() LIMIT 1
Crear CSV desde MySQL
SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';
Buscar registros duplicados
SELECT id, COUNT(*) as n FROM my_table GROUP BY id HAVING n >1;
Corrección de codificación de caracteres incorrecta en datos MySQL
UPDATE table SET column=CONVERT(CONVERT(CONVERT(column USING latin1) USING binary) using utf8);
Cargue CSV de nuevo en mySQL
LOAD DATA local INFILE 'unique.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' (col1, col2, col3)
Drupal 6.x Encuentra el código PHP en la base de datos
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);
Generar cadena aleatoria en MySQL
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring
Calcular la edad desde la fecha de nacimiento
SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) / 365);
Buscar y reemplazar
UPDATE table_name SET column_name = REPLACE(column_name, 'http://oldcontent.com', 'http://newcontent.com');
Selecciona entre dos fechas
SELECT * FROM files LEFT JOIN (dates) ON files.uploaded_id = dates.id WHERE date BETWEEN '2009-01-01' AND '2009-12-31'
Copia de seguridad de la base de datos MySQL en un archivo SQL con mysqldump
mysqldump --user=username --password=password --opt --add-drop-database --databases databasename > ~/path/to/file.sql
como calcular los ultimos 7 dias
WHERE mydatefld >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
volcado mysql
mysqldump -u [username] -p [password] [databasename] > [backupfile.sql]
reemplazar mysql
`# Reemplazar cadena en todos los registros de una tabla
UPDATE table_name SET column_name = REPLACE( column_name, ‘/dev’, " );
SELECCIONE REEMPLAZAR( nombre_columna, ‘/dev’, «) DE nombre_tabla;`
Convertir zona horaria a local
SELECT CONVERT_TZ(mydatefield,'US/Pacific','CET') FROM mytable;
Buscar y reemplazar en varias filas en SQL
UPDATE wp_posts SET post_content = REPLACE(post_content, 'staging.server.com', 'www.productionserver.com');
Cómo guardar los resultados de MySQL en un archivo externo
echo "SELECT columns FROM table_name WHERE whatever='something'" | /path/to/mysql -uUSERNAME -pPASSWORD DATABASENAME > /tmp/outfile.txt;
Insertar o actualizar si ya existe una clave única
INSERT INTO `tableName` VALUES (?,?,?,'-1',?,'0') ON DUPLICATE KEY UPDATE `id` = ?, `foo` = ?, `bar` = ?
mySQL: comandos de copia de seguridad de la base de datos
-- 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 ;
importación 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;
Buscar y reemplazar MySQL
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, 'find this string', 'replace found string with this string');
Cambiar la ruta del directorio de archivos de Drupal
UPDATE FILES SET filepath = REPLACE(filepath, 'sites/default/files/old/','sites/default/files/new/');
Encuentre todas las tablas en la base de datos MySQL que contengan nombres de columna específicos
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase';
Encuentra valores que ocurren exactamente una vez en la tabla
SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )
Script MySql para encontrar direcciones de correo electrónico no válidas
SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'
Cálculo de edad de MySQL
DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) >= 65
Combinaciones izquierdas para vincular tres o más tablas
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 coincide con la lista delimitada por comas
WHERE id REGEXP '(,|^){$this->id}(,|$)'
Obtenga un registro aleatorio basado en el peso
SELECT * FROM Table ORDER BY Rand() * (1 / Weight
Esperamos que estos fragmentos de tabla de MySQL sean lo que estaba buscando. Actualizaremos este artículo con otros fragmentos de MySQL que encontremos en el futuro, así que asegúrese de marcarlo como favorito.
Si disfrutó leyendo este artículo sobre fragmentos de tabla de MySQL, también debería leer estos:
- Creación de un sistema CRUD en WordPress (2018)
- 12 consejos para crear un complemento o tema premium de WordPress exitoso
- Cómo alojar un sitio web: todos los pasos explicados
- WordPress WP_OPTIONS optimización de tablas