SQL запрос
2860
6
есть запрос:
$sql_query = "SELECT `Rooms`,`street`,`HomeNumber`,`Floor`, count(*) as counter FROM `realty` where `NewHouse`!=1 group by `Rooms`,`street`,`HomeNumber`,`Floor` having count(*)>1";
в базе поле Rooms имеет значения от 0 до 9, как модифицировать запрос, чтобы значения 0 и 9 были равны?
туплю:хммм:
RAMMSTEIN
$sql_query = "SELECT case `Rooms` when 9 then 0 else `Rooms` end as `Rooms`,`street`,`HomeNumber`,`Floor`, count(*) as counter FROM `realty` where `NewHouse`!=1 group by case `Rooms` when 9 then 0 else `Rooms` end ,`street`,`HomeNumber`,`Floor` having count(*)>1"
RAMMSTEIN
SELECT `Rooms`,`street`,`HomeNumber`,`Floor`, count(*) as counter FROM `realty` where `NewHouse`!=1,`Rooms` < 9 group by `Rooms`,`street`,`HomeNumber`,`Floor` having count(*)>1
UNION ALL
SELECT 0 ,`street`,`HomeNumber`,`Floor`, count(*) as counter FROM `realty` where `NewHouse`!=1,`Rooms` = 9 group by `Rooms`,`street`,`HomeNumber`,`Floor` having count(*)>1
RAMMSTEIN
Если 0 и 9 - по сути одно и тоже, храни в базе либо 0 либо 9. RTFM "Нормализация"
blackvalex
Если 0 и 9 - по сути одно и тоже, храни в базе либо 0 либо 9. RTFM "Нормализация"
В контексте этого запроса - одно и тоже, а в принципе - скорее всего нет.
Anomander
По тексту запроса возникает мысль, что идет речь о риэлтерской базе данных. У риэлтеров есть фишка: объект "комната" обозначать как 0-комнатная либо 9-комнатная квартира.
Судя по всему, инфа в базу сливается из разных источников, в одних - комнаты обозначены как 0-комнатная, в других как 9-комнатная.

Правильнее при сливе привести всё к 0 либо 9.

Если не учитывать этих ньюансов, я бы использовал mod(rooms,9)
Аналитик_БД
Ваш запрос выдаст неправильный результат