|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.12.2009, 22:58 | #1 |
Пользователь
Регистрация: 31.05.2009
Сообщений: 71
|
Как подсчитать количество совпадений в таблице? MySQL
Мне надо подсчитать количество совпадений и записать в переменую
Код:
Последний раз редактировалось mihali4; 14.12.2009 в 14:02. |
13.12.2009, 23:07 | #2 |
Программист
Форумчанин
Регистрация: 27.02.2009
Сообщений: 505
|
Код:
there are no limits when you're software engineer
|
13.12.2009, 23:39 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а так разве не лучше?
Код:
|
14.12.2009, 12:18 | #4 |
Программист
Форумчанин
Регистрация: 27.02.2009
Сообщений: 505
|
бред...
Можно так: $result = count($row); Но возможны ошибки и проблемы.
there are no limits when you're software engineer
|
14.12.2009, 12:19 | #5 |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
как вариант - можно произвести выборку, а потом сделать mysql_affected_rows
|
14.12.2009, 13:48 | #6 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
это -
Код:
вот это - Код:
Стрелок-охотник
|
14.12.2009, 13:58 | #7 |
Программист
Форумчанин
Регистрация: 27.02.2009
Сообщений: 505
|
обоснуй. Может я чего-то не понимаю
there are no limits when you're software engineer
|
14.12.2009, 15:23 | #8 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
"SELECT COUNT(_name) as CNT FROM table_name WHERE _name = '$_name'" - этот запрос вернёт число строк в которых "есть равенство", например 1 678 352,
"SELECT _name FROM table_name WHERE _name = '$_name'" - вернёт 1 678 352 строковых значений, те минимум 1 678 352 байт информации. То что выберет БД попадёт в оперативную память, во втором случае туда попадет ненужная нам информация.
Стрелок-охотник
|
14.12.2009, 15:24 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я могу обосновать.
когда я говорил, что могу ошибаться, я имел в виде не ошибку в SQL запросе или его (SQL запроса) неэффективность. я говорил о том, что не точно помню синтаксис, как на PHP в переменную записать поле из результирующей выборки. при этом я на 95% уверен, что мой код не сильно ошибочен... а теперь по сути: "SELECT _name FROM table_name WHERE _name = '$_name'" вернёт столько строчек, сколько записей в таблице сооотвествует выборке. Таким образом на клиента будет передана огромная (в частном случае) масса НЕНУЖНОЙ информации! попробуйте НА ЛЮБОЙ SQL сервере на таблице из нескольких тысяч (хотя бы) записей написать select * from Table - не устанете ждать результата?! а теперь там же выполните select count(*) from Table этот запрос отработает МГНОВЕННО, даже если у Вас базе сотни тысяч записей. Потому как сервер сообщит Вам ОДНО РЕЗУЛЬТИРУЮЩЕЕ ЧИСЛО! так вот, а запрос "SELECT COUNT(_name) as CNT FROM table_name WHERE _name = '$_name'" вернёт ОДНУ СТРОКУ с ОДНИМ числом. (правда, разные СУБД по разному выполняют выборки из пустой таблицы, поэтому я бы ещё проверил rows на предмет > 0) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подсчет количества совпадений в таблице | aval | Microsoft Office Excel | 8 | 08.11.2009 21:50 |
Как подсчитать количество записей в списке | Grisha248 | Помощь студентам | 2 | 23.06.2009 10:43 |
Подсчитать количество шагов | MAKEDON | Помощь студентам | 3 | 02.06.2009 15:04 |
Помогите подсчитать количество дней | komar73 | Microsoft Office Excel | 2 | 09.02.2009 09:54 |
Как подсчитать количество уникальных мест? | Iskin | Microsoft Office Excel | 2 | 05.12.2008 11:44 |