안녕하세요 .. 제가 저번에도 질문했듯 php 로 프로그래밍을 하고 있습니다..
mysql 에서 ... 자료를 가지고 와서 ... count를 세어야 하는데요 ...
1. select 로 전체를 가져옴..
for 문으로 돌아가면서 .. 조건에 맞으면 카운트 ++
2. mysql 자체에서 count(*)해서 값을 받아와서 변수에 넣음
이렇게 받아와야 할 값이 6종류가 되는데 ... 1번은 쿼리 한번으로 for문으로 해결할 수 있는 장점이 있고 ..
2번은 코드가 지저분해지지 않고 뭔가 .. 객체 지향같아 보이는 장점(?) 이 있습니다 -_-;;;;
프로그래밍 방법에는 답이 없겠지만.. 성능상 또는 기능상.... 어떤 방법을 선호 하시는지
알려 주실 수 있을까요 ... 아니면 새로운 방법을 알려 주셔도 좋습니다.
¼º´É»óÀ¸·Î for¹®º¸´Ù ..mysql 6¹ø Äõ¸®°¡ ºü¸¦±î¿ä?
º¸ÅëÀÇ °æ¿ì 2¹øÀÌ °¡´ÉÇÏ´Ù¸é 2¹øÀ¸·Î ÇÕ´Ï´Ù.
1¹øÀº
db : µ¥ÀÌÅ͸¦ Ž»ö. Àü¼Û (¾µ¶§ ¾ø´Â ÀÚ¿ø:³×Æ®¿÷,¸Þ¸ð¸®µî ³¶ºñ)
php : µ¥ÀÌÅÍ ¼ö½Å. ¸Þ¸ð¸® ÀûÁ¦. for¹® ¿¬»ê
ÀÌÁö¸¸
2¹øÀº ±×³É °á°ú¸¸ °¡Á®¿À¸é ¶¯À̱¸
ij½¬°¡ µÈ´Ù¸é ´õ´õ¿í »¡¶óÁö°ÚÁö¿ä.
½ÉÇÑ°æ¿ì ¾î¶² ½Ã½ºÅÛÀº
¾Æ¿¡ ¸ðµç ·ÎÁ÷À» ÇÁ·¯½ÃÁ®¿Í Æã¼ÇÀ¸·Î ±¸ÇöÇؼ
µ¹¸®´Â °÷µµ ºÃ½À´Ï´Ù.
°³ÀÎÀûÀ¸·Î ±×Á¤µµ ±îÁö ÇÏ´Â°Ç ½È¾îÇÏÁö¸¸ ÀåÁ¡¿¡ ´ëÇؼ´Â ÀÎÁ¤Çϱ⿡ ±×·¯·Á´Ï ÇÕ´Ï´Ù.
±×¸®°í Äõ¸® 6¹øµµ Àß Â¥¸é ÇѹøÀ¸·Î °¡´ÉÇÒ¼öµµ ÀÖ½À´Ï´Ù
dbÀÇ ¿¬»êºÎÇϺ¸´Ù ³×Æ®¿öÅ© Ä¿³Ø¼ÇºÎÇϸ¦ ½Å°æ¾²´ÂÆíÀÌ ÁÁ½À´Ï´Ù.
½ºÅä¾îµå ÇÁ·Î½ÃÀúÀÇ ¾àÀÚÀÔ´Ï´Ù
Select¿¡¼ Á¶°Ç¿¡ ¸ÂÀ¸¸é Ä«¿îÆ®Çؼ 6°³ÀÇ º¯¼ö¿¡ ³Ö´Â´Ù.
decode±¸¹® Âü°íÇϼ¼¿ä.
SELECT (SELECT count(*) FROM Å×À̺í WHERE Á¶°ÇÀý) AS RST1, (¶È°°ÀÌ Á¶°Ç)
ÇÏ½Ã¸é µÉµí Çѵ¥¿ä.
±×·³ ÇÑ ÇàÀ¸·Î °á°ú°ª ¹Þ¾Æ¿À½Ç ¼ö ÀÖÀ»µí ÇÕ´Ï´Ù.
Ä®·³ 6°³·Î case when ~ else ~ end ÇÔ¼ö¸¦ ¾²½Ã¸é µÉ µí ÇÕ´Ï´Ù.
¿¹)
select
count(case when ~ else ~ end) result1,
sum(case when ~ else ~ end) result2,
....
from table
where ~~~
±¸Ã¼ÀûÀ¸·Î ¾î¶² ÀÛ¾÷ÀÇ ³»¿ëÀÎÁö ¾Ë¸é ´õ ÁÁ°Ú³×¿ä.
¾ÏÆ°, Äõ¸®ÇѹæÀ¸·Î ÇϽô°ÍÀÌ....
Áú¹®ÀÌ ±¸Ã¼ÀûÀ̾úÀ¸¸é ´õ ÁÁÀº ´äº¯ÀÌ ³ª¿ÀÁö ¾ÊÀ»±î ½Í½À´Ï´Ù.