Используйте счетчик, как
выберите количество (*) врагов, у которых monsterid = 334322
Однако убедитесь, что вы добавили в таблицу индекс monsterid. Причина в том, что если вы этого не сделаете, а это не первичный ключ, то rdbms будет вынужден выполнить полное сканирование таблицы - прочитать каждую строку - чтобы вернуть вам значение. Для небольших наборов данных это не имеет значения, так как таблица, вероятно, все равно будет лежать в ядре, но как только число строк становится значительным, и вы нажимаете диск, чтобы выполнить сканирование, разница в скорости может легко составить два порядка или более.
Если число строк очень небольшое, то не индексация является рациональной, так как использование индекса не первичного ключа требует дополнительных затрат при вставке данных, однако это должно быть определенным решением (я регулярно впечатляю клиентов, которые Использовал программиста, который не понимает базы данных, добавляя индексы в таблицы, которые были хороши, когда кодер их создавал, но впоследствии медленно сканировали при загрузке с реальными объемами данных - довольно удивительно, как одна строка sql для добавления индекса будет купи себе статус гуру в глазах клиентов, потому что ты снова сделал его систему пригодной для использования).
Если вы выполняете более сложные запросы к базе данных, используя подвыбор, например, находя все места, где нет монстров, тогда посмотрите на использование предложения sql EXISTS. Это часто упускается из виду программистами (искушение состоит в том, чтобы вернуть счетчик фактических значений), и его использование обычно происходит быстрее, чем альтернативы.