Mysql
 sql >> база данни >  >> RDS >> Mysql

Каква е разликата между count(0), count(1).. и count(*) в mySQL/SQL?

Нищо наистина, освен ако не посочите поле в таблица или израз в скоби вместо постоянни стойности или *

Нека ви дам подробен отговор. Броят ще ви даде ненулев номер на запис на дадено поле. Да кажем, че имате таблица с име A

select 1 from A
select 0 from A
select * from A

всички ще върнат един и същ брой записи, това е броят на редовете в таблица A. Въпреки това изходът е различен. Ако има 3 записа в табл. С X и Y като имена на полета

select 1 from A will give you

1
1
1

select 0 from A will give you
0
0
0

select * from A will give you ( assume two columns X and Y is in the table )
X      Y
--     --
value1 value1
value2 (null)
value3 (null)

И така, и трите заявки връщат едно и също число. Освен ако не използвате

select count(Y) from A 

тъй като има само една ненулева стойност, ще получите 1 като изход



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Стойността на предишния ред трябва да бъде извлечена

  2. mysql:отказан достъп до information_schema

  3. Използването на TYPE =InnoDB в MySQL хвърля изключение

  4. Предупреждение:mysqli_connect():(HY000/1049):Неизвестна база данни само в mac терминал

  5. mysql кръгова зависимост в ограниченията на външния ключ