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

Как да използвам GROUP BY за свързване на низове в mysql

Можете да използвате GROUP_CONCAT() функция получава стойностите в един ред и можете да използвате дефинирани от потребителя променливи, за да присвоите номера на всяка стойност в sid група:

select sid, group_concat(concat(rn, '. ', string) ORDER BY id SEPARATOR ' ') stringfrom( изберете id, sid, string, @row:=случай, когато @prev=sid след това @row else 0 край +1 rn, @prev:=sid от кръстосаното присъединяване на вашата таблица (изберете @row:=0, @prev:=null) r подреждане по id) srcgroup по sid 

Вижте SQL Fiddle с демонстрация , Резултатът е:

<предварителен код>| SID | STRING |-----------------------| 1 | 1. AAA 2. BBB || 2 | 1. CCC || 3 | 1. ZZZ 2. EEE |

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо текстовата колона не може да има стойност по подразбиране в MySQL?

  2. Мога ли да преместя MySQL таблицата на второ устройство?

  3. Изчислете сумата от две колони в ред по клауза - laravel

  4. Безкрайно превъртане с MySQL данни

  5. Не може да съхранява UTF8 знаци в MySQL