phpMyAdmin
 sql >> база данни >  >> Database Tools >> phpMyAdmin

MySQL - Заявката комбинира редове със същия идентификатор и запазва всички записи за този идентификатор, но като един запис

Проблемът е, че MySQL няма добър начин за изброяване на редове. Използването на константата не е гарантирано, че ще работи, уви, според документацията на MySQL. Често работи, но може да бъде и проблематично.

Бих предложил да свържете имената заедно в едно поле. Резултатът ще изглежда така:

1     tree,rose
2     tree
3     tree,bush,rose

Използване на SQL:

select plantid, group_concat(name separator ',')
from t
group by plantid

Ако наистина искате имената в отделни колони, две опции идват на ум. Единият е да използвате резултатите от горе и след това да анализирате резултата в отделни низове. Другата алтернатива е да използвате самостоятелно присъединяване и агрегиране за изчисляване на последователно число, като това:

select p.plantid, p.name, count(*) as seqnum
from t p left outer join
     t pprev
     on p.plantid = pprev.plantid and
        p.name >= pprev.name
group by p.plantid, p.name

И използвайте това като подзаявка.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Фатална грешка:Извикване на недефиниран метод Действие::execute() /home/public_html/system/engine/event.php на ред 62

  2. промяна на URL адреса по подразбиране на phpmyadmin

  3. Експортирайте база данни Firebird в sql

  4. ГРЕШКА в Mysql:ASCII '\0' при импортиране на sql файл на linux сървър

  5. MD5(RAND()) на MySQL връща само цифри