2015-04-18 1 views
0

Как я могу подсчитать количество вхождений строки из нескольких атрибутов (в моем случае, у меня есть 5 атрибутов) таблицы в базе данных MySQL ? Могу ли я сделать это с помощью MySQL quer (y/ies)?Подсчитайте количество вхождений строки по нескольким атрибутам в базе данных MySQL Как

Атрибуты могут иметь значения NULL, если это означает что-либо при подсчете.

Кроме того, я использую PHP на стороне клиента, который мог бы использовать, если бы MySQL не был лучшим способом найти этот счет, хотя я хочу знать, как это можно сделать с MySQL.

Я видел это post, и это похоже на то, что я хочу сделать, но это решение работает только для подсчета строк над одним атрибутом/столбцом. Мне нужно подсчитать суммарные вхождения каждой строки поверх всех (например, 5) моих атрибутов/столбцов.

+0

Похоже, что вам необходимо переконструировать базу данных. Возможно, есть таблица, посвященная 'id, attribute'. – Devon

+0

Имя_таблицы (id, attr_1, attr_2, attr_3, attr_4, attr_5) - это то, что у меня есть сейчас. – user3773048

+0

Кажется, по вашему вопросу значение может существовать в любом из них, так почему у вас есть атрибуты, разделенные на пять столбцов? – Devon

ответ

0
declare @string nvarchar(255) = "string" --String to search for 

select COUNT(t1.attr_1) + COUNT(t2.attr_2) + COUNT(t3.attr_3) + COUNT(t4.attr_4) + COUNT(t5.attr_5) 
from Table_name t 
join Table_name t1 on t1.id = t.id 
join Table_name t2 on t2.id = t.id 
join Table_name t3 on t3.id = t.id 
join Table_name t4 on t4.id = t.id 
join Table_name t5 on t5.id = t.id 
where t1.attr_1 = @string 
and t2.attr_2 = @string 
and t2.attr_3 = @string 
and t2.attr_4 = @string 
and t2.attr_5 = @string 
+0

Это не похоже, что он решает мою проблему. – user3773048

+0

Этот запрос подсчитывает общее количество вхождений '@ string' через 5 столбцов. Может быть, я правильно понимаю ваш вопрос. Не могли бы вы привести пример того, что вы пытаетесь сделать? –

+0

Да, вы не поняли мой вопрос правильно, но Девон привлек меня к моему решению в комментариях выше. В любом случае спасибо! – user3773048

Смежные вопросы