Поиск по записям в таблице mysql

Zybc

Новичок
Поиск по записям в таблице mysql

Никак не могу разобраться с поиском в таблицах.

У меня таблица со столбцами news и ip

содержание:
news ip
10 195.3.5.3
12 435.35.25.3
10 195.3.5.3

ну и тд

мне нужно получить сколько есть записей с определенными значениями news и ip
к примеру, сколько раз повторяется ip 195.3.5.3 при значении 10 в news
 

Socrat

Новичок
В первую очередь интересует вопрос(кстати офтоп):
- Это все что хранится в таблице?
То есть других полей нет?

А собственно ответ на Ваш вопрос элементарен:

- необходимо использовать concat и группировать по результату конката...
 

Socrat

Новичок
<b>Фанат</b>
:)))
Уважаемый, а группировать вы по чему предлагаете???
Читайте внимательней:
группировать по результату конката
а сам подсчет - count(да хоть бы и *)

Необходимости использовать sum() никакой не вижу...
то есть запрос будет ввыглядеть
select count(*), concat(news, ip) as someth from table group by someth - причем это 100% рабочий вариант
 

Solid

Drosera anglica
Фанат
SUM()? Может быть COUNT()?

Socrat
Зачем такой ресурсоёмкий гемор?

Зачем GROUP BY, если можно обойтись WHERE?
CONCAT() -, в данном случае, вообще изврат. Тормозить будет дико.
 

Socrat

Новичок
Solid

Возможно я чего то таки не вижу
- но обойтись Where, по моему разумению задачи - не получится.
Не вижу никакой возможности составить условия для выборки
(Если брать в качестве условия то что необходимо пересчитать все записи в таблице)...
Если же есть конкретные условия при формировании запроса - то есть известны IP и news - то тему вообще надо в топку: она не стоит обсуждения.
CONCAT() -, в данном случае, вообще изврат. Тормозить будет дико.
не факт - при правильной структуре и продуманных индексах - работает на ура.

ИМХО
Но есть другой фактор:
- если для работы с БД необходимо применять подобные изощрения: необходимо задуматься о приведении структуры к нормальным формам.
 

alexei.lexx

Новичок
мне нужно получить сколько есть записей с определенными значениями news и ip
к примеру, сколько раз повторяется ip 195.3.5.3 при значении 10 в news
А чем такой вариант не устраивает?

SELECT COUNT(*) FROM tableName WHERE news = 10 AND ip = '195.3.5.3'

При чём тут конкатенация и группировка?
 

Socrat

Новичок
alexei.lexx
повторюсь
Если же есть конкретные условия при формировании запроса - то есть известны IP и news - то тему вообще надо в топку: она не стоит обсуждения.
 

WP

^_^
Гы) Просто народ по-разному понял вопрос. Два варианта:
1. У человека есть одна вполне определенная пара значений news и ip и ему нужно сделать совсем простой запрос с COUNT и WHERE.
2. Человеку нужно получить одним запросом все пары значений и посчитанное кол-во их повторений. Тогда это решается с помощью COUNT + GROUP_CONCAT.
 

alexei.lexx

Новичок
В любом случае обе интерпретации вопроса относятся к области азов SQL.
 
Сверху