MySQL. Выбор строк, где записи в ячейках одного столбца равны между собой.

Denter

Новичок
MySQL. Выбор строк, где записи в ячейках одного столбца равны между собой.

Всем привет. Такой вопрос:
Есть таблица в БД, называется. В таблице 4 столбца и много строк. Нужно произвести своего рода сравнение. Т.е. произвести запрос строк по следующему критерию: выбрать все строки, где записи в ячейках одного столбца равны между собой. Пример таблицы:
col1 col2 col3 col4
111 222 333 444
555 666 777 888
123 456 789 012
320 666 562 027

В столбце col2 строки 2 и 4 равны числу 666. Как написать запрос, чтобы выбрались строки 2 и 4 целиком. Но при это не должно происходить сравнение типа where col2 = '666', т.к. инфа на месте 666 будет всегда меняться. Есть ли какой-нить другой способ выборки? Продолжите запрос не использую прямое сравнение:
select * from table where col2 ???"
 

si

Administrator
в 4.1 можно одним запросом
Код:
mysql> create table t1 (co1l int, col2 int, col3 int, col4 int);
Query OK, 0 rows affected (0.24 sec)

mysql> insert into t1 values( 111,222,333,444), (555,666,777,888) ,(123,456,789,012), (320, 666, 562, 027);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from t1 where col2 in (select col2 from t1 group by col2 having count(*)>1); 
+------+------+------+------+
| co1l | col2 | col3 | col4 |
+------+------+------+------+
|  555 |  666 |  777 |  888 |
|  320 |  666 |  562 |   27 |
+------+------+------+------+
2 rows in set (0.00 sec)
 

Denter

Новичок
К сожалению такой запрос не подходит, т.к. тип данных столбца col2 - datetime, а не int. Т.е. в этой таблице записана дата и время. Извините, забыл об этом упомянуть раньше.
 

MuXa247

Новичок
Originally posted by Denter
К сожалению такой запрос не подходит, т.к. тип данных столбца col2 - datetime, а не int. Т.е. в этой таблице записана дата и время. Извините, забыл об этом упомянуть раньше.
А в чем проблемма то? группируй только по дате... :rolleyes:
 

Denter

Новичок
Да, пардон, тормознул. Только вот 2 запроса в одном у меня не проходят. Как их грамотно разбить на 2 запроса?
 

.des.

Поставил пиво кому надо ;-)
подзапрос создает временную таблицу ( CREATE TEMPORARY TABLE .. SELECT )
внешний запрос объединяет исходную с получившейся временной по col2. По col2 должен быть построен индекс.
 

Denter

Новичок
У меня установлена версия PHP 4.3.10, а двойной запрос не проходит.
si, так что это за решение?
 

Denter

Новичок
MqSQL - 3.23, так что двойные запросы отдыхают. И все-таки как можно выполнить такой запрос, используя несколько запросов?
 

.des.

Поставил пиво кому надо ;-)
Denter Вы читаете ответы которые Вам дают?
 
Сверху