Отображать сообщение проверки с дубликатом StudentId по одному

Я хочу проверить дублирующую проверку идентификатора на сервере 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)


Отображать сообщение проверки с дубликатом StudentId по одному

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

Спасибо

Это синтаксис mysql

shivani 29.05.2019 13:12

@GordonLinoff, если есть какое-либо доступное решение, вы можете поделиться синтаксисом кода сервера sql

shivani 29.05.2019 13:15

Никакая профилактика здесь не применима, я должен отображать сообщение проверки только для studentId

shivani 29.05.2019 13:23

в твоем образце 101 не продублировано.. экспалин лучше

ScaisEdge 29.05.2019 13:24

Возможный дубликат Поиск повторяющихся значений в таблице SQL

Darren Lamb 29.05.2019 13:25
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
5
62
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вот код 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

Чтобы отобразить дубликаты, я бы сделал:

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
)
Ответ принят как подходящий

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

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)

Вы можете использовать соединение с suquery, имеющим количество идентификаторов струндетов > 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

Другие вопросы по теме