У меня огромная таблица с множеством строк и столбцов, но я опишу только важные из них:
+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| artikel | int(10) unsigned | NO | IDX | NULL | |
| color | varchar(255) | NO | | NULL | |
+-----------+------------------+------+-----+---------+----------------+
Пример данных:
1 apple 1000 red
2 apple 1000 yellow
3 lemon 2000 blue
4 lem on 2000 green
5 lemon 2000 black
6 apple 1000 white
7 cherry 3000 lime
8 cherry 3000 pink
9 lemon 2000 silver
10 apple 1000 gold
Как видите, индекс на artikel
, у каждого artikel
есть какие-то name
(для каждого artikel
есть одинаковые name
) и разные color
. Все ок, но вот со строкой 4
проблема, там неправильно name
= lem on
, должно быть lemon
.
Я хочу выделить эти строки (GROUP BY artikel
), где есть не уникальные name
, а HAVING COUNT(name) > 1
. Итак, мой выбор вернет одну строку, где будет artikel
= 2000
.
Пробовал HAVING
, DISTINCT
, но безуспешно.
Как это можно сделать?