Например, для всех таблиц MyISAM в БД:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db_name' AND ENGINE = 'MyISAM';
затем с полученным списком:
ALTER TABLE `table_name` ENGINE=InnoDB;
Когда текст обрезается после первого смайла (эмодзи).
Использовать кодировку utf8mb4_general_ci
вместо utf8_general_ci
Найти в таблице catalog
записи с повторяющимся uid
.
Показать все:
SELECT * FROM `catalog` WHERE `uid` IN (SELECT `uid` FROM `catalog` GROUP BY `uid` HAVING COUNT(`uid`)>1) ORDER BY `uid` ASC, `id` DESC;
Показать только уникальные:
SELECT * FROM `catalog` WHERE `uid` IN (SELECT `uid` FROM `catalog` GROUP BY `uid` HAVING COUNT(`uid`)>1) GROUP BY `uid` ORDER BY `uid` ASC, `id` DESC;
Поиск по двум столбцам
Заменяем /temp/
на /
в parent_chpu
в таблице seo
в строках, которые начинаются с /temp/
UPDATE `seo` SET `parent_chpu` = REPLACE(`parent_chpu`, '/temp/', '/') WHERE `parent_chpu` LIKE '/temp/%' OR `parent_chpu`='/temp/';
Заменяем 125/
на «ничего» в path
в таблице mod_shop
в строках, которые начинаются с 125/
UPDATE `mod_shop` SET `path` = REPLACE(`path`, '125/', '') WHERE `path` LIKE '125/%';
Добавляем в parent_chpu
в таблице seo
в начало каждой строки /
UPDATE `seo` SET `parent_chpu` = CONCAT('/', `parent_chpu`);
Получить вначале строки, у которых текст в поле типа TEXT
заполнен.
SELECT * FROM `table` ORDER BY CHAR_LENGTH(`content`)>0 DESC, `pos` ASC;