Mysql
 sql >> база данни >  >> RDS >> Mysql

Задайте кои редове да изтриете в mysql след прилагане на комбиниран уникален индекс без игнориране

Вместо да се опитвате да изтриете това, което не ви трябва, опитайте се да мислите за това като за проблем, при който искате да изберете тези, които искате, и да игнорирате останалите; така:

CREATE TABLE `other_table` LIKE `part3`;
INSERT INTO `other_table`
SELECT `part3`.*
FROM (SELECT gtu, region, trait, pop, author, risk, MAX(zvalue) AS max_zval
    FROM `part3`
    GROUP BY gtu, region, trait, pop, author, risk
) `tmp`
INNER JOIN `part3` USING (gtu, region, trait, pop, author, risk)
WHERE `part3`.zvalue = `tmp`.max_zval;

Това трябва да създаде таблица other_table което отговаря на уникалното ограничение във вашите данни; само редовете с най-високата zvalue се запазват, останалите се премахват (пропускат).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. задаване на blob на нула с помощта на PreparedStatement

  2. Винаги ли 1 е равно на '1' в SQL?

  3. java.lang.ClassNotFoundException:com.mysql.jdbc.Driver (в библиотеките на jre)

  4. Грешка при получаване на таблица не съществува, но таблицата съществува (ActiveRecord::StatementInvalid Mysql2::Error:Table не съществува)

  5. Проблем с събирането, възможно ли е да се понижи/преобразува от utf8mb4_unicode_ci в utf8_general_ci?