Ho una tabella in cui i salvare per ogni record i suoi antenatiGroup da una stringa con delimitatore
+----+------------+
| id | ancestors |
+----+------------+
| 1 | ,1, |
| 2 | ,2, |
| 3 | ,3,1, |
| 4 | ,4,2, |
| 5 | ,5,3,1, |
| 6 | ,6,4,2, |
| 7 | ,7,5,3,1, |
+----+------------+
Come gruppo da id
ma, come in questo modo group by ','id','
e non group by id
per ottenere un risultato simile a questo:
+----+------------+
| id | count |
+----+------------+
| 1 | 4 |
| 2 | 3 |
| 3 | 3 |
| 4 | 2 |
| 5 | 2 |
| 6 | 1 |
| 7 | 1 |
+----+------------+
Il mio requisito è trovare il conteggio dello id
nell'intera colonna di ancestors
.
Fornire ulteriori dettagli: dettagli dello schema, struttura/dettagli della tabella, query completa utilizzata. Un SQLFiddle sarebbe molto meglio, ovviamente! – SarathChandra
Questa è una violazione delle regole di base della normalizzazione. La tabella degli antenati deve avere più righe con un valore atomico per l'antenato. Supponendo che tu abbia 2 genitori, avresti massimo 2 righe. Anche il tuo esempio non sembra avere senso. Per l'ID 1, hai 1 come antenato? Perché? Non sei il tuo genitore. – gview
@gview seguendo sempre le regole di normalizzazione non è sempre la scelta migliore solo essere carfull e scegliere la soluzione che si adatta al tuo problema .. nel mio caso non riesco a fare una query per trovare tutta la discesa di un record se io rispetto normalizzazione – Youssef