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

SQL:Мога ли да препращам/осъществявам достъп до данни в текущия ред във функция на прозорец?

Ако приемем, че използвате MySQL и приемем, че вашата таблица има името test , и ако приемем, че и двете колони са типове низове:

SELECT
  t1.id, count(t2.list)
FROM
(test t1 LEFT JOIN test t2 ON
  (t2.list LIKE CONCAT('%,', t1.id, ',%')) OR
  (t2.list LIKE CONCAT('%,', t1.id)) OR
  (t2.list LIKE CONCAT(t1.id, ',%')))
GROUP BY t1.id;

Моля, имайте предвид, че това решение може да е много бавно в зависимост от броя на записите, които имате, и в зависимост от средната дължина на низовете в list поле.

Ако имате нужда от нещо по-бързо, мисля, че не може да бъде едно запитване. Може би ще трябва да напишем запомнена процедура или някаква приложна логика за това или да използваме допълнителни таблици или колони и поредица от множество SQL изрази.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Нещо подобно на Hibernate в PHP?

  2. вземете идентификатора на последния вмъкнат запис, без да използвате mysql_insert_id()

  3. Съхранение на конкретни стойности за дата/час за потребители в различни часови зони

  4. Symfony извежда данни в групирани по дата таблици

  5. Извличането на последния вмъкнат идентификатор показва грешен номер