Отображать сообщение проверки с дубликатом StudentId по одному - PullRequest
1 голос
/ 29 мая 2019

Я хочу проверить проверку дубликатов идентификатора на сервере sql, чтобы в строке проверки отображался номер строки, сообщение проверки и дубликат идентификатора с сервера sql

Я не могу понять, как я могу это сделать?

Помощь очень полезна

Создать таблицу

    CREATE TEMPORARY TABLE IF NOT EXISTS Tbl_Student
    (RowID INT PRIMARY KEY auto_increment, StudentID BIGINT);

Вставить записи

Insert into Tbl_Student(RowID,StudentID) values (1,101)
Insert into Tbl_Student(RowID,StudentID) values (2,102)
Insert into Tbl_Student(RowID,StudentID) values (3,101)
Insert into Tbl_Student(RowID,StudentID) values (4,102)
Insert into Tbl_Student(RowID,StudentID) values (5,103)


enter image description here

Пожалуйста, поделитесь, если есть какое-то решение там

Спасибо

Ответы [ 4 ]

1 голос
/ 29 мая 2019

Попробуйте следующий запрос,

SELECT RowID, CONCAT('StudentID ',StudentID, ' is Duplicate) AS Error FROM Tbl_Student WHERE StudentID IN (SELECT StudentID FROM Tbl_Student GROUP BY StudentID  HAVING COUNT(*) > 1)
0 голосов
/ 29 мая 2019

Вы можете использовать объединение в запросе с числом идентификаторов strundet> 1

  select id,  student_id, concat('Stundent id' , student_id, ' is duplicated')
  from  my_table m
  inner join  (
    select student_id 
    from my_table  
    group by student_id 
    having count(*) > 1  
  ) t on t.student_id  = m.student_id
0 голосов
/ 29 мая 2019

Для отображения дубликатов я бы сделал:

select
  RowID, 
  concat('Student ', StudentID, ' is duplicate') as StudentID
from Tbl_Student where StudentID in (
  select StudentID from Tbl_Student group by StudentID having count(*) > 1
)
0 голосов
/ 29 мая 2019

Вот код T-SQL, вам может потребоваться преобразовать его в формат MySql:

Select * from(
      Select RowId, Count(*) Over(Partition By StudentId Order By RowId) as Cnt From [YourTable]
) as K
Where Cnt>1

Вы также можете использовать агрегатную функцию Row_Number или Count для достижения того же результата.

Вот множество решений MySql для этой проблемы:

Поиск дублирующихся записей в MySQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...