Zend_Db_Select ¿ÀºêÁ§Æ®´Â,SQL ÀÇ SELECT
¹®ÀåÀ» ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù.
ÀÌ Å¬·¡½º¿¡´Â, Äõ¸®ÀÇ °¢ ºÎºÐÀ» Ãß°¡Çϱâ À§ÇÑ ¸Þ¼Òµå°¡ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.
PHP ÀÇ ¸Þ¼Òµå³ª µ¥ÀÌÅ͸¦ ±âÃÊ·Î Äõ¸®ÀÇ °¢ ºÎºÐÀ» ÁöÁ¤Çϸé,
ÀÌ Å¬·¡½º°¡ Á¤È®ÇÑ SQL ¹®ÀåÀ» ÀÛ¼ºÇØ ÁÝ´Ï´Ù.Äõ¸®¸¦ ÀÛ¼ºÇϸé,
±×¸®°í´Â Åë»óÀÇ ¹®ÀÚ¿°ú °°ÀÌ ±×°ÍÀ» ÀÌ¿ëÇØ Äõ¸®¸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Db_Select (Àº)´Â ´ÙÀ½°ú °°Àº ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.
SQL Äõ¸®¸¦ Á¶±Ý¾¿ Á¶¸³ÇØ °¡±â À§ÇØÀÇ °´Ã¼ ÁöÇâÀÇ ¸Þ¼Òµå
SQL Äõ¸®ÀÇ ÀϺο¡ µµÂøÇϰí, µ¥ÀÌŸº£À̽º¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â Ãß»óÈ
´ëºÎºÐÀÇ ¸ÞŸµ¥ÀÌŸ ½Äº°ÀÚÀÇ ÀÚµ¿ ÄíÆ® 󸮿¡ ÀÇÇÑ, ¿¹¾à¾î(reserved word)³ª Ư¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ´Ù SQL ÀÇ ¼Æ÷Æ®
½Äº°ÀÚ³ª °ªÀÇ ÄíÆ®¿¡ ÀÇÇÑ, SQL ÀÎÁ§¼Ç °ø°Ý ´ëÃ¥
¹Ýµå½Ã Zend_Db_Select (À»)¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾È µÈ´Ù°í ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù.
´Ü¼øÇÑ SELECT Äõ¸®¸¦ ½ÇÇàÇÑ´Ù¸é,SQL Äõ¸® Àüü¸¦ ¹®ÀÚ¿·Î ÁöÁ¤ÇØ,
¾î´ðÅÍÀÇ query()
¸Þ¼Òµå³ª fetchAll()
¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â ÆíÀÌ ÈξÀ ½ÉÇÃÇÏ°Ô µÇ°ÚÁö¿ä.
Zend_Db_Select (À»)¸¦ »ç¿ëÇÏ¸é Æí¸®ÇÑ °ÍÀº,
¾î¶°ÇÑ Á¶°Ç¿¡ ÀǰÅÇϰí, ¾îÇø®ÄÉÀ̼dz»¿¡¼
SELECT Äõ¸®¸¦ µ¿ÀûÀ¸·Î Á¶¸³ÇØ °¥ Çʿ䰡 ÀÖ´Â °æ¿ìÀÔ´Ï´Ù.
Zend_Db_Select ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ·Á¸é ,
Zend_Db_Adapter_Abstract ¿ÀºêÁ§Æ®ÀÇ
select()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
·Ê 10.41. µ¥ÀÌŸº£À̽º ¾î´ðÅÍÀÇ select() ¸Þ¼ÒµåÀÇ ¿¹
<?php
$db = Zend_Db::factory( ...options... );
$select = $db->select();
Zend_Db_Select ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏ´Â ¶Ç ÇϳªÀÇ ¹æ¹ýÀº, constructor¡¡ ¡¡ ÀÇ Àμö·Î µ¥ÀÌŸº£À̽º ¾î´ðÅ͸¦ ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù.
·Ê 10.42. »õ·Ó´Ù Select ¿ÀºêÁ§Æ®ÀÇ ÀÛ¼ºÀÇ ¿¹
<?php
$db = Zend_Db::factory( ...options... );
$select = new Zend_Db_Select($db);
Äõ¸®¸¦ ÀÛ¼ºÇÒ ¶§¿¡, Äõ¸®ÀÇ ±¸¸¦ °³º°ÀûÀ¸·Î Ãß°¡ÇØ ³ª°¥ ¼ö ÀÖ½À´Ï´Ù. Zend_Db_Select ¿ÀºêÁ§Æ®¿¡´Â, °³°³ÀÇ ±¸¸¦ Ãß°¡ÇØ ³ª°¡´Â ¸Þ¼Òµå°¡ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.
·Ê 10.43. ¸Þ¼Òµå¸¦ »ç¿ëÇØ ±¸¸¦ Ãß°¡ÇÏ´Â ¿¹
<?php
// Zend_Db_Select ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù
$select = $db->select();
// FROM ±¸¸¦ Ãß°¡ÇÕ´Ï´Ù
$select->from( ...Å×À̺í°ú Ä÷³À» ÁöÁ¤ÇÕ´Ï´Ù... )
// WHERE ±¸¸¦ Ãß°¡ÇÕ´Ï´Ù
$select->where( ...°Ë»ö Á¶°ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù... )
// ORDER BY ±¸¸¦ Ãß°¡ÇÕ´Ï´Ù
$select->order( ...¼ÒÆ® Á¶°ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù... );
Zend_Db_Select ¿ÀºêÁ§Æ®ÀÇ ´ëºÎºÐÀÇ ¸Þ¼Òµå·Î, Æí¸®ÇÑ ¡¸È帣´Â ÀÎÅÍÆäÀ̽º¡¹Çü½ÄÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.À̰ÍÀº, °¢ ¸Þ¼Òµå°¡, ÀÚ±â Àڽſ¡°ÔÀÇ ÂüÁ¶¸¦ °á°úÀûÀ¸·Î µ¹·ÁÁÖ´Â °ÍÀÔ´Ï´Ù. Áï, ±× °á°ú¸¦ »ç¿ëÇÏÀÚ¸¶ÀÚ ´Ù¸¥ ¸Þ¼Òµå¸¦ ÄÝ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
·Ê 10.44. È帣´Â ÀÎÅÍÆäÀ̽ºÀÇ »ç¿ë¿¹
<?php
$select = $db->select()
->from( ...Å×À̺í°ú Ä÷³À» ÁöÁ¤ÇÕ´Ï´Ù... )
->where( ...°Ë»ö Á¶°ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù... )
->order( ...¼ÒÆ® Á¶°ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù... );
ÀÌ ¸¶µðÀÇ ¿¹¿¡¼´Â È帣´Â ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÕ´Ï´Ù¸¸, ÀÌ ¹æ½ÄÀ» »ç¿ëÇÏÁö ¾Ê°í »ç¿ëÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. ±×·¸°Ô ÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â °Íµµ ÀÚÁÖ ÀÖ°ÚÁö¿ä.¿¹¸¦ µé¾î, Äõ¸®¿¡ ±¸¸¦ Ãß°¡Çϱâ Àü¿¡ ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ¾î¶°ÇÑ Ã³¸®°¡ ÇÊ¿äÇÑ °æ¿ì µîÀÔ´Ï´Ù.
ÀÌ Äõ¸®ÀÇ Å×À̺íÀ» ÁöÁ¤Çϱâ À§Çؼ from()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.Å×À̺í¸íÀº, ´Ü¼øÇÏ°Ô ¹®ÀÚ¿·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Db_Select (Àº)´Â Å×À̺í¸íÀ» ½Äº°Àڷμ ÄíÆ® ÇϹǷÎ,
Ư¼ö ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
·Ê 10.45. from() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT *
// FROM "products"
$select = $db->select()
->from( 'products' );
Å×À̺íÀÇ »ó°ü¸í (ȤÀº "¾Ù¸®¾î½º(alias)" (ÀÌ)¶ó°íµµ ¸»ÇÕ´Ï´Ù) (À»)¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.±× °æ¿ì´Â, ´Ü¼øÇÑ ¹®ÀÚ¿Àº ¾Æ´Ï°í ¿¬»ó ¹è¿À» »ç¿ëÇØ, »ó°ü¸í°ú Å×À̺í¸íÀÇ ´ëÀÀÀ» ÁöÁ¤ÇÕ´Ï´Ù. SQL ÀÇ ±× ¿ÜÀÇ ±¸·Î, ÀÌ »ó°ü¸íÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. º¹¼öÀÇ Å×À̺íÀ» °áÇÕÇÑ Äõ¸®¸¦ ÀÛ¼ºÇÏ´Â °æ¿ì´Â, Zend_Db_Select (Àº)´Â ±× Å×À̺í¸í¿¡ ±Ù°ÅÇÑ ÀÏÀÇÀÎ »ó°ü¸íÀ» ÀÛ¼ºÇÕ´Ï´Ù.
·Ê 10.46. Å×À̺íÀÇ »ó°ü¸íÀ» ÁöÁ¤ÇÏ´Â ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p.*
// FROM "products" AS p
$select = $db->select()
->from( array('p' => 'products') );
RDBMS ¿¡ µû¶ó¼´Â, Å×À̺í¸íÀÇ Àü¿¡ schema¸íÀ» ¿¬°áÇÏ´Â ¹æ½ÄÀ» ¼Æ÷Æ®Çϰí ÀÖ´Â °Íµµ ÀÖ½À´Ï´Ù.
Å×À̺í¸íÀ¸·Î¼"schemaName.tableName
"
(¿Í)°ú °°ÀÌ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.ÀÌ °æ¿ì,
Zend_Db_Select (Àº)´Â °¢ ºÎºÐÀ» °³º°ÀûÀ¸·Î ÄíÆ® ÇÕ´Ï´Ù.
ȤÀº schema¸í°ú Å×À̺í¸íÀ» µû·Î µû·Î ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
¸¸¾à ¾çÂÊ ¸ðµÎ·Î schema¸íÀ» ÁöÁ¤ÇßÀ» °æ¿ì´Â,
Å×À̺í¸í°ú µ¿½Ã¿¡ ÁöÁ¤ÇßÁö¸¸ ÆíÀÌ ¿ì¼±µË´Ï´Ù.
·Ê 10.47. schema¸íÀÇ ÁöÁ¤ÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT *
// FROM "myschema"."products"
$select = $db->select()
->from( 'myschema.products' );
// ȤÀº
$select = $db->select()
->from('products', '*', 'myschema');
from()
¸Þ¼ÒµåÀÇ µÎ¹øÂ°ÀÇ Àμö·Î,
´ëÀÀÇÏ´Â Å×ÀÌºí¿¡¼ ÃëµæÇÏ´Â Ä÷³À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ä÷³À» ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ìÀÇ µðÆúÆ®´Â
"*
" ±×¸®°í, À̰ÍÀº "¸ðµç Ä÷³"
(À»)¸¦ ³ªÅ¸³½´Ù SQL ÀÇ ¿ÍÀϵå Ä«µåÀÔ´Ï´Ù.
Ä÷³¸íÀ» ÁöÁ¤ÇÏ·Á¸é , ´Ü¼øÇÑ ¹®ÀÚ¿ÀÇ ¹è¿À» »ç¿ëÇÏ´ÂÁö, ȤÀº ¿¬»ó ¹è¿·Î ¾Ù¸®¾î½º(alias)¿Í Ä÷³¸íÀ» ´ëÀÀ½Ãŵ´Ï´Ù. ÃëµæÇÏ°í ½ÍÀº Ä÷³ÀÌ Çϳª¸¸ÀÇ °æ¿ì·Î ¾Ù¸®¾î½º(alias)¸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì´Â, ¹è¿Àº ¾Æ´Ï°í ´Ü¼øÇÑ ¹®ÀÚ¿·Î ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÇÏ´ÃÀÇ ¹è¿À» Ä÷³ÀÇ Àμö·Î¼ ÁöÁ¤Çϸé,
´ëÀÀÇÏ´Â Å×ÀÌºí¿¡¼ÀÇ Ä÷³Àº °á°ú ¼¼Æ®¿¡ Æ÷ÇÔµÇÁö ¾Ê°Ô µË´Ï´Ù.
join()
¸Þ¼ÒµåÀÇ
Äڵ忹
(À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
Ä÷³¸íÀ»
"correlationName.columnName
"
ÀÇ Çü½Ä¿¡¼ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.ÀÌ °æ¿ì,
Zend_Db_Select (Àº)´Â °¢ ºÎºÐÀ» °³º°ÀûÀ¸·Î ÄíÆ® ÇÕ´Ï´Ù.
Ä÷³ÀÇ correlationName (»ó°ü¸í) (À»)¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â,
ÇöÀçÀÇ from()
¸Þ¼Òµå·Î ÁöÁ¤ÇÑ Å×À̺íÀÇ À̸§À» »ç¿ëÇÕ´Ï´Ù.
·Ê 10.48. Ä÷³À» ÁöÁ¤ÇÏ´Â ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", p."product_name"
// FROM "products" AS p
$select = $db->select()
->from(array('p' => 'products'),
array('product_id', 'product_name'));
// °°Àº Äõ¸®¸¦, »ó°ü¸íÀ» ÁöÁ¤ÇØ ÀÛ¼ºÇÕ´Ï´Ù
// SELECT p."product_id", p."product_name"
// FROM "products" AS p
$select = $db->select()
->from(array('p' => 'products'),
array('p.product_id', 'p.product_name'));
// ÀÌ Äõ¸®¸¦, Ä÷³ÀÇ Çϳª¿¡ ¾Ù¸®¾î½º(alias)¸¦ ÁöÁ¤ÇØ ÀÛ¼ºÇÕ´Ï´Ù
// SELECT p."product_id" AS prodno, p."product_name"
// FROM "products" AS p
$select = $db->select()
->from(array('p' => 'products'),
array('prodno' => 'product_id', 'product_name'));
SQL Äõ¸®¿¡¼´Â, ´ÜÁö Å×À̺íÀÇ Ä÷³À» »ç¿ëÇÒ »Ó¸¸ ¾Æ´Ï¶ó ¾î¶°ÇÑ ½ÄÀ» Ä÷³À¸·Î¼ »ç¿ëÇϱ⵵ ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì´Â, »ó°ü¸íÀ» ºÎ·Ï ÄíÆ®¸¦ Àû¿ëÇϰųª ÇØ¼´Â ¾ÈµË´Ï´Ù. Ä÷³ ¹®ÀÚ¿¿¡ °ýÈ£°¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì¿¡,Zend_Db_Select (Àº)´Â ±×°ÍÀ» ½ÄÀ¸·Î¼ Ãë±ÞÇÕ´Ï´Ù.
Zend_Db_Expr ÇüÅÂÀÇ ¿ÀºêÁ§Æ®¸¦ ¸í½ÃÀûÀ¸·Î ÀÛ¼ºÇØ, ¹®ÀÚ¿ÀÌ Ä÷³¸íÀ¸·Î ÇØ¼®µÇ¾î ¹ö¸®´Â °ÍÀ» ¸·À» ¼öµµ ÀÖ½À´Ï´Ù. Zend_Db_Expr (Àº)´Â, ¹®ÀÚ¿À» Çϳª¸¸ Æ÷ÇÔÇÑ ÃÖ¼ÒÇÑÀÇ Å¬·¡½ºÀÔ´Ï´Ù. Zend_Db_Select ÇÏ Zend_Db_Expr ÇüÅÂÀÇ ¿ÀºêÁ§Æ®¸¦ ÀνÄÇØ, ±×°ÍÀ» ¹®ÀÚ¿·Î º¯È¯ÇÕ´Ï´Ù¸¸, ±× ¶§¿¡ ÄíÆ®³ª »ó°ü¸íµîÀÇ Ã³¸®¸¦ Àû¿ëÇÏÁö ¾Ê½À´Ï´Ù.
![]() |
ÁÖÀÇ |
---|---|
Ä÷³À¸·Î¼ »ç¿ëÇÏ´Â ½Ä¿¡ °ýÈ£°¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì´Â, Ä÷³¸íÀ¸·Î Zend_Db_Expr (À»)¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Zend_Db_Select (Àº)´Â, °ýÈ£¸¦ ¹ß°ßÇϸé ÀÚµ¿ÀûÀ¸·Î ±× ¹®ÀÚ¿À» ½ÄÀ¸·Î¼ Ãë±ÞÇÕ´Ï´Ù. ÄíÆ®³ª »ó°ü¸íÀÇ ¼³Á¤Àº µÇÁö ¾Ê½À´Ï´Ù. |
·Ê 10.49. ½ÄÀ» Æ÷ÇÔÇÑ Ä÷³ÀÇ ÁöÁ¤ÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", LOWER(product_name)
// FROM "products" AS p
// °ýÈ£Æ÷ÇÔÀÇ ½ÄÀº, ¾Ï¹¬Áß¿¡
// Zend_Db_Expr (À¸)·Î¼ ´Ù·ç¾îÁý´Ï´Ù
$select = $db->select()
->from(array('p' => 'products'),
array('product_id', 'LOWER(product_name)'));
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", (p.cost * 1.08) AS cost_plus_tax
// FROM "products" AS p
$select = $db->select()
->from(array('p' => 'products'),
array('product_id', 'cost_plus_tax' => '(p.cost * 1.08)'));
// ÀÌ Äõ¸®¸¦, ¸í½ÃÀûÀ¸·Î Zend_Db_Expr (À»)¸¦ ÁöÁ¤ÇØ ÀÛ¼ºÇÕ´Ï´Ù
// SELECT p."product_id", p.cost * 1.08 AS cost_plus_tax
// FROM "products" AS p
$select = $db->select()
->from(array('p' => 'products'),
array('product_id', 'cost_plus_tax' => new Zend_Db_Expr('p.cost * 1.08')));
À§ÀÇ ¿¹¿¡¼´Â,Zend_Db_Select ÇÏ »ó°ü¸íÀÇ ¼³Á¤À̳ª ½Äº°ÀÚÀÇ ÄíÆ®¶ó°í Çϴ ó¸®¸¦ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. ¾Ö¸ÅÇÔÀ» ÇØ°áÇϱâ À§Çؼ ±×·¯ÇÑ Ã³¸®°¡ ÇÊ¿äÇÑ °æ¿ì´Â, ¼öµ¿À¸·Î ¹®ÀÚ¿À» º¯°æÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
Ä÷³¸íÀÌ SQL Ű¿öµå³ª Ư¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇϰí ÀÖ´Â °æ¿ì´Â,
¾î´ðÅÍÀÇ quoteIdentifier()
¸Þ¼Òµå¸¦ »ç¿ëÇØ °á°ú¸¦ Á¶ÀÛÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
quoteIdentifier()
(Àº)´Â,
½Äº°ÀÚ¿¡ ´ëÇØ¼ SQL ÀÇ ÄíÆ® 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù.
À̰Ϳ¡ ÀÇÇØ Å×À̺íÀ̳ª Ä÷³À̶ó°í ÇÏ´Â ½Äº°ÀÚ¸¦
SQL ÀÇ ±× ÀÌ¿ÜÀÇ ºÎºÐ°ú ±¸º°ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
ÄíÆ® 󸮸¦ Á÷Á¢ ¹®ÀÚ¿¿¡ ¹¯¾î ¹ö¸®Áö ¾Ê°í
quoteIdentifier()
¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î,
´ç½ÅÀÇ Äڵ带 µ¥ÀÌŸº£À̽º¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â °ÍÀ¸·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×·¸´Ù°í ÇÏ´Â °Íµµ,RDBMS ¿¡ µû¶ó¼´Â º°·Î Ç¥ÁØÀûÀÌ ¾Æ´Ñ ¹®ÀÚ·Î ÄíÆ®¸¦ ½Ç½ÃÇÏ´Â °Íµµ Àֱ⠶§¹®ÀÔ´Ï´Ù.
quoteIdentifier()
¸Þ¼Òµå´Â,
¾î´ðÅÍÀÇ ÇüÅ¿¡ µû¶ó ÀûÀýÇÑ ÄíÆ® ¹®ÀÚ¸¦ »ç¿ëÇϵµ·Ï(µíÀÌ) ¼³°èµÇ°í ÀÖ½À´Ï´Ù.
quoteIdentifier()
¸Þ¼Òµå´Â ¶Ç,
½Äº°ÀÚÀÇ À̸§¾È¿¡ µîÀåÇÏ´Â ÄíÆ® ¹®ÀÚ ÀÚüµµ À̽ºÄÉÀÌÇÁ ÇÕ´Ï´Ù.
·Ê 10.50. ½Ä¾ÈÀÇ Ä÷³À» ÄíÆ® ÇÏ´Â ¿¹
<?php
// ÀÌ Äõ¸®¸¦ ÀÛ¼ºÇÒ ¶§¿¡, ½Ä¾È¿¡ Àִ Ưº°ÇÑ Ä÷³¸í "from" (À»)¸¦ ÄíÆ® ÇÕ´Ï´Ù
// SELECT p."from" + 10 AS origin
// FROM "products" AS p
$select = $db->select()
->from(array('p' => 'products'),
array('origin' => '(p.' . $db->quoteIdentifier('from') . ' + 10)'));
À¯¿ëÇÑ Äõ¸®ÀÇ »ó´ç¼ö´Â,JOIN
(À»)¸¦ »ç¿ëÇØ º¹¼ö Å×À̺íÀÇ ÇàÀ» °áÇÕÇϰí ÀÖ½À´Ï´Ù.
Å×À̺íÀ» Zend_Db_Select Äõ¸®¿¡ Ãß°¡ÇÏ·Á¸é ,
join()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ ¸Þ¼ÒµåÀÇ »ç¿ë¹ýÀº from()
¸Þ¼Òµå¿Í ´à¾Æ ÀÖ½À´Ï´Ù¸¸, ´ëºÎºÐÀÇ °æ¿ì¿¡ °áÇÕ Á¶°ÇÀ» ÁöÁ¤ÇÑ´Ù°í ÇÏ´Â Á¡ÀÌ ´Ù¸¨´Ï´Ù.
·Ê 10.51. join() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", p."product_name", l.*
// FROM "products" AS p JOIN "line_items" AS l
// ON p.product_id = l.product_id
$select = $db->select()
->from(array('p' => 'products'),
array('product_id', 'product_name'))
->join(array('l' => 'line_items'),
'p.product_id = l.product_id');
join()
ÀÇ µÎ¹øÂ°ÀÇ Àμö·Î¼
°áÇÕ Á¶°ÇÀ» ¹®ÀÚ¿·Î ÁöÁ¤ÇÕ´Ï´Ù.À̰ÍÀº,
¾î´À Å×À̺íÀÇ ÇàÀÌ ´Ù¸¥ Å×À̺íÀÇ ¾î´À ÇàÀ¸·Î ´ëÀÀÇÏ´ÂÁö¸¦ ³ªÅ¸³»´Â Á¶°Ç½ÄÀÔ´Ï´Ù.
½Ä Áß(¾È)¿¡¼´Â »ó°ü¸íÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
![]() |
ÁÖÀÇ |
---|---|
°áÇÕ Á¶°ÇÀ¸·Î ÁöÁ¤ÇÑ ½Ä¿¡ °üÇØ¼´Â, ÄíÆ® 󸮴 ÇàÇØÁöÁö ¾Ê½À´Ï´Ù.
ÄíÆ® ÇÒ Çʿ䰡 ÀÖ´Â Ä÷³¸íÀ» »ç¿ëÇÏ´Â °æ¿ì´Â,
°áÇÕ Á¶°ÇÀÇ ¹®ÀÚ¿À» ÀÛ¼ºÇÒ ¶§¿¡
|
join()
ÀÇ 3¹øÂ°ÀÇ Àμö´Â Ä÷³¸íÀ» ³ªÅ¸³»´Â ¹è¿ÀÔ´Ï´Ù.
À̰ÍÀº from()
¸Þ¼Òµå·Î »ç¿ëÇÏ´Â Çü½Ä°ú ´à¾Æ ÀÖ½À´Ï´Ù.
µðÆúÆ®´Â "*
" ÀÔ´Ï´Ù.
»ó°ü¸íÀ̳ª ½Ä,Zend_Db_Expr ¿¡ ´ëÇÑ Ãë±ÞÀº,
from()
¸Þ¼Òµå¿¡ ÀÖ¾î¼ÀÇ Ä÷³¸íÀÇ ¹è¿°ú °°½À´Ï´Ù.
Å×ÀÌºí¿¡¼ Ä÷³À» ÃëµæÇÏÁö ¾Ê´Â °æ¿ì´Â,
Ä÷³ ¸®½ºÆ®¿¡ ÇÏ´ÃÀÇ ¹è¿À» »ç¿ëÇÕ´Ï´Ù.
À̰ÍÀº from()
¸Þ¼Òµå¿¡¼µµ¿Í °°ÀÌ µ¿ÀÛÇÕ´Ï´Ù¸¸,
º¸ÅëÀº ÃÖÃÊÀÇ Å×ÀÌºí¿¡¼´Â ¾î¶°ÇÑ Ä÷³À» ÃëµæÇϰÚÁö¿ä.
ÇÑÆí, ¿¬°áÇÏ´Â Å×ÀÌºí¿¡ ´ëÇØ¼´Â Ä÷³À» ÃëµæÇÏÁö ¾Ê´Â °Íµµ ÀÖ½À´Ï´Ù.
·Ê 10.52. Ä÷³À» ÁöÁ¤ÇÏÁö ¾Ê´Â ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", p."product_name"
// FROM "products" AS p JOIN "line_items" AS l
// ON p.product_id = l.product_id
$select = $db->select()
->from(array('p' => 'products'),
array('product_id', 'product_name'))
->join(array('l' => 'line_items'),
'p.product_id = l.product_id',
array() ); // ÇÏ´ÃÀÇ Ä÷³ ¸®½ºÆ®
À§ÀÇ ¿¹·Î, ¿¬°áÇÑ Å×À̺íÀÇ Ä÷³ À϶÷ÀÇ Àå¼Ò¿¡
ÇÏ´ÃÀÇ ¹è¿ array()
(À»)¸¦ ÁöÁ¤ÇØ ÀÖ´Â °Í¿¡ ÁÖÀÇÇսôÙ.
SQL ÀÇ °áÇÕ¿¡´Â ¸î°³ÀÇ Çü½ÄÀÌ ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡,Zend_Db_Select ÇÏÁö¸¸ ¼Æ÷Æ®ÇÏ´Â °áÇÕÀÇ Çü½ÄÀ» Á¤¸®ÇÕ´Ï´Ù.
join(table, join, [columns])
¸Þ¼Òµå ȤÀº
joinInner(table, join, [columns])
¸Þ¼Òµå¿¡ ÀÇÇÑ´Ù
INNER JOIN
À̰ÍÀº °¡Àå ÀϹÝÀûÀÎ °áÇÕ Çü½ÄÀÔ´Ï´Ù.°¢ Å×À̺íÀÇ ÇàÀ», ÁöÁ¤ÇÑ °áÇÕ Á¶°Ç¿¡ ±Ù°ÅÇØ ºñ±³ÇÕ´Ï´Ù. °á°ú ¼¼Æ®¿¡´Â, ±× °áÇÕ Á¶°ÇÀ» ä¿ì´Â ÇุÀÌ Æ÷ÇԵ˴ϴÙ. Á¶°ÇÀ» ä¿ì´Â ÇàÀÌ ¾ø´Â °æ¿ì´Â, °á°ú ¼¼Æ®°¡ ºñ¿ì±âµµ ÇÕ´Ï´Ù.
¸ðµç RDBMS ÇÏÁö¸¸, ÀÌ °áÇÕ Çü½Ä¿¡ ´ëÀÀÇϰí ÀÖ½À´Ï´Ù.
joinLeft(table, condition, [columns])
¸Þ¼Òµå¿¡ ÀÇÇÑ´Ù
LEFT JOIN
ÁÂÃøÀÇ Å×À̺íÀÇ ¸ðµç Çà°ú ¿ìÃøÀÇ Å×À̺íÀÇ Á¶°Ç¿¡ ¸ÅÄ¡ÇÏ´Â ÇàÀÌ Æ÷ÇԵ˴ϴÙ. ¿ìÃøÀÇ Å×ÀÌºí¿¡¼ÀÇ Ä÷³ °¡¿îµ¥, ÁÂÃøÀÇ Å×ÀÌºí¿¡ ´ëÀÀÇÏ´Â ÇàÀÌ ¾ø´Â °Í¿¡ ´ëÇØ¼´Â NULL ±×¸®°í ¹¯Èü´Ï´Ù.
¸ðµç RDBMS ÇÏÁö¸¸, ÀÌ °áÇÕ Çü½Ä¿¡ ´ëÀÀÇϰí ÀÖ½À´Ï´Ù.
joinRight(table, condition, [columns])
¸Þ¼Òµå¿¡ ÀÇÇÑ´Ù
RIGHT JOIN
¿À¸¥ÂÊ ¿ÜºÎ °áÇÕÀº, ¿ÞÂÊ ¹Ù±ùºÎ °áÇÕÀ» º¸¿ÏÇÏ´Â °ÍÀÔ´Ï´Ù. ¿ìÃøÀÇ Å×À̺íÀÇ ¸ðµç Çà°ú ÁÂÃøÀÇ Å×À̺íÀÇ Á¶°Ç¿¡ ¸ÅÄ¡ÇÏ´Â ÇàÀÌ Æ÷ÇԵ˴ϴÙ. ÁÂÃøÀÇ Å×ÀÌºí¿¡¼ÀÇ Ä÷³ °¡¿îµ¥, ¿ìÃøÀÇ Å×ÀÌºí¿¡ ´ëÀÀÇÏ´Â ÇàÀÌ ¾ø´Â °Í¿¡ ´ëÇØ¼´Â NULL ±×¸®°í ¹¯Èü´Ï´Ù.
RDBMS ¿¡ µû¶ó¼´Â, ÀÌ °áÇÕ Çü½Ä¿¡ ´ëÀÀÇϰí ÀÖÁö ¾Ê´Â °Íµµ ÀÖ½À´Ï´Ù. ±×·¯³ª, ÀϹÝÀûÀ¸·Î ¿À¸¥ÂÊ ¿ÜºÎ °áÇÕÀº, Å×À̺íÀÇ Â÷·Ê¸¦ ¹Ù²ã ³ÖÀ¸¸é ¿ÞÂÊ ¹Ù±ùºÎ °áÇÕÀ¸·Î¼ ³ªÅ¸³»´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.
joinFull(table, condition, [columns])
¸Þ¼Òµå¿¡ ÀÇÇÑ´Ù
FULL JOIN
¿ÏÀü ¿ÜºÎ °áÇÕÀº, ¿ÞÂÊ ¹Ù±ùºÎ °áÇÕ°ú ¿À¸¥ÂÊ ¿ÜºÎ °áÇÕÀ» Á¶ÇÕÇÑ °Í °°Àº °ÍÀÔ´Ï´Ù. ¾çÃøÀÇ Å×À̺íÀÇ ¸ðµç ÇàÀÌ Æ÷ÇԵ˴ϴÙ. °áÇÕ Á¶°ÇÀ» ä¿ì´Â Æí¼ºÀÌ ÀÖ¾úÀ» °æ¿ì´Â ±×°ÍµéÀÌ µ¿ÀÏÇà¿¡ Á¤¸®ÇØ ±× ÀÌ¿ÜÀÇ °æ¿ì´Â, ´ëÀÀÇÏ´Â µ¥ÀÌÅͰ¡ ¾ø´Â Ä÷³¿¡ ´ëÇØ¼´Â NULL ±×¸®°í ¹¯Èü´Ï´Ù.
RDBMS ¿¡ µû¶ó¼´Â, ÀÌ °áÇÕ Çü½Ä¿¡ ´ëÀÀÇϰí ÀÖÁö ¾Ê´Â °Íµµ ÀÖ½À´Ï´Ù.
joinCross(table, [columns])
¸Þ¼Òµå¿¡ ÀÇÇÑ´Ù
CROSS JOIN
Å©·Î½º °áÇÕ°ú´Â, µ¥Ä«¸£Æ®ÀûÀÔ´Ï´Ù. ÃÖÃÊÀÇ Å×À̺íÀÇ °¢ Çà¿¡ ´ëÇØ¼, µÎ¹øÂ°ÀÇ Å×À̺íÀÇ ¸ðµç ÇàÀÌ ¸ÅÄ¡ÇÕ´Ï´Ù. Áï, °á°ú ¼¼Æ®ÀÇ Çà¼ö´Â, µÎ Å×À̺íÀÇ Çà¼öÀÇ Àû°ú µ¿ÀÏÇØÁý´Ï´Ù. °á°ú ¼¼Æ®¸¦ ÇÊÅ͸µ ÇÏ·Á¸é ,WHERE ±¸·Î Á¶°ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¹æ¹ý¿¡ µû¸£´Â Å©·Î½º °áÇÕÀº, ¿¾ SQL-89 ÀÇ °áÇÕ ±¸¹®°ú ´à¾Æ ÀÖ½À´Ï´Ù.
joinCross()
¸Þ¼Òµå¿¡´Â,
°áÇÕ Á¶°ÇÀ» ÁöÁ¤ÇÏ´Â ÆÄ¶ó¹ÌÅͰ¡ ¾ø½À´Ï´Ù.
RDBMS ¿¡ µû¶ó¼´Â, ÀÌ °áÇÕ Çü½Ä¿¡ ´ëÀÀÇϰí ÀÖÁö ¾Ê´Â °Íµµ ÀÖ½À´Ï´Ù.
joinNatural(table, [columns])
¸Þ¼Òµå¿¡ ÀÇÇÑ´Ù
NATURAL JOIN
ÀÚ¿¬ °áÇÕÀº, ¾çÂÊ ¸ðµÎÀÇ Å×ÀÌºí¿¡ °°Àº À̸§À¸·Î µîÀåÇÏ´Â Ä÷³À» ºñ±³ÇÕ´Ï´Ù. ºñ±³´Â ¸ðµç Ä÷³¿¡ ´ëÇØ¼ ÇàÇØÁý´Ï´Ù. ÀÌ API ±×¸®°í ¼Æ÷Æ®Çϰí ÀÖ´Â °ÍÀº, ÀÚ¿¬ ³»ºÎ °áÇÕ¸¸ÀÔ´Ï´Ù. SQL ±×¸®°í ÀÚ¿¬ ¿ÜºÎ °áÇÕÀÌ ¼Æ÷Æ®µÇ°í ÀÖ¾ú´Ù°í ÇØµµ, »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
joinNatural()
¸Þ¼Òµå¿¡´Â,
°áÇÕ Á¶°ÇÀ» ÁöÁ¤ÇÏ´Â ÆÄ¶ó¹ÌÅÍ´Â ¾ø½À´Ï´Ù.
ÀÌ·¯ÇÑ °áÇÕ ¸Þ¼Òµå¿¡ °¡¼¼ÇØ Äõ¸®¸¦ ´Ü¼øÇÏ°Ô Çϱâ À§Çؼ JoinUsing ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.¿ÏÀüÇÑ °áÇÕ Á¶°ÇÀ» °Ç³×ÁÖ´Â ´ë½Å¿¡, ´Ü¼øÇÏ°Ô °áÇÕÇÏ´Â Ä÷³¸íÀÇ ¹è¿À» °Ç³×ÁÖ¾î ÁÖ¸é Zend_Db_Select ¿ÀºêÁ§Æ®°¡ °áÇÕ Á¶°ÇÀ» ÀÛ¼ºÇØ ÁÝ´Ï´Ù.
·Ê 10.53. joinUsing() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT *
// FROM "table1"
// JOIN "table2"
// ON "table1".column1 = "table2".column1
// WHERE column2 = 'foo'
$select = $db->select()
->from('table1')
->joinUsing('table2', 'column1')
->where('column2 = ?', 'foo');
Zend_Db_Select ÀÇ °áÇÕ ¸Þ¼Òµå¿¡´Â, °¢°¢ ´ëÀÀÇÑ´Ù 'using' ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù.
joinUsing(table, join, [columns])
¹×
joinInnerUsing(table, join, [columns])
joinLeftUsing(table, join, [columns])
joinRightUsing(table, join, [columns])
joinFullUsing(table, join, [columns])
°á°ú ¼¼Æ®ÀÇ ÇàÀ» Á¦ÇÑÇϱâ À§ÇÑ Á¶°ÇÀ» ÁöÁ¤ÇÏ·Á¸é
where()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ ¸Þ¼ÒµåÀÇ ÃÖÃÊÀÇ Àμö´Â SQL ÀÇ ½Ä¿¡¼, À̰ÍÀ» Äõ¸®ÀÇ
SQL ±×¸®°í WHERE
±¸·Î¼ »ç¿ëÇÕ´Ï´Ù.
·Ê 10.54. where() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT product_id, product_name, price
// FROM "products"
// WHERE price > 100.00
$select = $db->select()
->from(
'products',
array('product_id', 'product_name', 'price'))
->where('price > 100.00');
![]() |
ÁÖÀÇ |
---|---|
|
where()
¸Þ¼ÒµåÀÇ µÎ¹øÂ°ÀÇ Àμö´Â ¿É¼ÇÀÔ´Ï´Ù.
À̰ÍÀº ½ÄÀ» ¿Å°Ü³õ´Â °ªÀÌ µË´Ï´Ù.
Zend_Db_Select (Àº)´Â °ªÀ» ÄíÆ® ÇØ, ½Ä¾ÈÀÇ
Àǹ® ºÎÈ£ ("?
") (À»)¸¦ ±× °ªÀ¸·Î ¿Å°Ü³õ½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â ÆÄ¶ó¹ÌÅ͸¦ Çϳª¸¸ ¹Þ½À´Ï´Ù. º¹¼öÀÇ °ªÀ» ġȯÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì´Â, ¹®ÀÚ¿À» ½º½º·Î Æ÷¸Ë ÇØ, °ªÀÇ »ðÀÔÀ̳ª ÄíÆ®¸¦ ½º½º·Î ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
·Ê 10.55. where() ¸Þ¼Òµå·ÎÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT product_id, product_name, price
// FROM "products"
// WHERE (price > 100.00)
$minimumPrice = 100;
$select = $db->select()
->from(
'products',
array('product_id', 'product_name', 'price'))
->where('price > ?', $minimumPrice);
Zend_Db_Select ¿ÀºêÁ§Æ®»ó¿¡¼,where()
¸Þ¼Òµå¸¦ ¿©·¯ Â÷·Ê ½ÇÇàÇÒ ¼öµµ ÀÖ½À´Ï´Ù.±× °á°úÀÇ Äõ¸®´Â,
ÁöÁ¤ÇÑ Á¶°ÇÀ» AND
±×¸®°í Çϳª¿¡ Áý°èÇÑ °ÍÀÌ µË´Ï´Ù.
·Ê 10.56. º¹¼öÀÇ where() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT product_id, product_name, price
// FROM "products"
// WHERE (price > 100.00)
// AND (price < 500.00)
$minimumPrice = 100;
$maximumPrice = 500;
$select = $db->select()
->from('products',
array('product_id', 'product_name', 'price'))
->where('price > ?', $minimumPrice)
->where('price < ?', $maximumPrice);
º¹¼öÀÇ Á¶°ÇÀ» OR
±×¸®°í ¿¬°áÇÏ°í ½ÍÀº °æ¿ì´Â,
orWhere()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ ¸Þ¼ÒµåÀÇ »ç¿ë¹ýÀº where()
¸Þ¼Òµå¿Í °ÅÀÇ °°½À´Ï´Ù¸¸, Á¶°ÇÀÇ Àü¿¡´Â
AND
(Àº)´Â ¾Æ´Ï°í OR
ÇÏÁö¸¸ ºÙ°Ô µË´Ï´Ù.
·Ê 10.57. orWhere() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT product_id, product_name, price
// FROM "products"
// WHERE (price < 100.00)
// OR (price > 500.00)
$minimumPrice = 100;
$maximumPrice = 500;
$select = $db->select()
->from('products',
array('product_id', 'product_name', 'price'))
->where('price < ?', $minimumPrice)
->orWhere('price > ?', $maximumPrice);
Zend_Db_Select (Àº)´Â,where()
¸Þ¼Òµå³ª
orWhere()
¸Þ¼Òµå·Î ÁöÁ¤ÇÑ ½ÄÀÇ ¾çÃøÀ¸·Î
ÀÚµ¿ÀûÀ¸·Î °ýÈ£¸¦ ºÙÀÔ´Ï´Ù.À̰Ϳ¡ ÀÇÇØ,
³í¸® ¿¬»êÀÚ°¡ ¿¹±âÄ¡ ¸øÇÑ °á°ú¸¦ ÀÏÀ¸Å°´Â °ÍÀ» ¸·½À´Ï´Ù.
·Ê 10.58. ³í¸®½ÄÀ» °ýÈ£·Î µÑ·¯½Î´Â ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT product_id, product_name, price
// FROM "products"
// WHERE (price < 100.00 OR price > 500.00)
// AND (product_name = 'Apple')
$minimumPrice = 100;
$maximumPrice = 500;
$prod = 'Apple';
$select = $db->select()
->from('products',
array('product_id', 'product_name', 'price'))
->where("price < $minimumPrice OR price > $maximumPrice")
->where('product_name = ?', $prod);
À§ÀÇ ¿¹¿¡¼´Â, °ýÈ£°¡ ¾øÀ¸¸é °á°ú´Â ¿ÏÀüÈ÷ ´Ù¸¥ °ÍÀÌ µË´Ï´Ù.
¿Ö³ÄÇϸé,AND
ÂÊÀÌ OR
º¸´Ù ¿ì¼± ¼øÀ§°¡ ³ô±â ¶§¹®ÀÔ´Ï´Ù.Zend_Db_Select
(Àº)´Â °ýÈ£¸¦ ºÙÀ̹ǷÎ, °¢°¢ÀÇ where()
±×¸®°í ÁöÁ¤µÈ ½ÄÀÇ °áÇÕµµ°¡ AND
º¸´Ù ³ô¾ÆÁý´Ï´Ù.
SQL ±×¸®°í GROUP BY
±¸¸¦ »ç¿ëÇϸé,
°á°ú ¼¼Æ®ÀÇ Çà¼ö¸¦ ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù.
GROUP BY
±¸·Î ÁöÁ¤ÇÑ Ä÷³ÀÇ ÀÏÀÇÀÎ °ª ¸¶´Ù,
°á°ú°¡ ÀÏÇà¿¡ Á¤¸®ÇÕ´Ï´Ù.
Zend_Db_Select ±×·³, ÇàÀÇ ±×·ìȸ¦ ÇàÇϱâ À§ÇÑ Ä÷³À»
group()
¸Þ¼Òµå·Î ÁöÁ¤ÇÕ´Ï´Ù.
ÀÌ ¸Þ¼Òµå¿¡ÀÇ Àμö´Â,GROUP BY
±¸·Î »ç¿ëÇÏ´Â Ä÷³ ȤÀº º¹¼ö Ä÷³ÀÇ ¹è¿ÀÌ µË´Ï´Ù.
·Ê 10.59. group() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", COUNT(*) AS line_items_per_product
// FROM "products" AS p JOIN "line_items" AS l
// ON p.product_id = l.product_id
// GROUP BY p.product_id
$select = $db->select()
->from(array('p' => 'products'),
array('product_id'))
->join(array('l' => 'line_items'),
'p.product_id = l.product_id',
array('line_items_per_product' => 'COUNT(*)'))
->group('p.product_id');
from()
¸Þ¼Òµå·ÎÀÇ Ä÷³ÀÇ ¹è¿°ú °°ÀÌ,
Ä÷³¸í¿¡´Â »ó°ü¸íÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.¶Ç,
Ä÷³¸íÀº ½Äº°Àڷμ ÄíÆ® µË´Ï´Ù.
´Ù¸¸, ¹®ÀÚ¿¿¡ °ýÈ£°¡ Æ÷ÇԵǰųª
Zend_Db_Expr ÇüÅÂÀÇ ¿ÀºêÁ§Æ®¸¦ ÁöÁ¤Çϰųª ÇßÀ» °æ¿ì´Â º°µµÀÔ´Ï´Ù.
SQL ±×¸®°í HAVING
±¸¸¦ »ç¿ëÇϸé,
±×·ìÈ ÇÑ Çà¿¡ Á¦¾àÀ» Àû¿ëÇÕ´Ï´Ù.À̰ÍÀº,
WHERE
±¸°¡ Çà¿¡ ´ëÇØ¼ Á¦¾àÀ» Àû¿ëÇÏ´Â °Í°ú °°½À´Ï´Ù.
±×·¯³ª, À̰͵鿡´Â Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù.
WHERE
Á¶°ÇÀº ±×·ìÈÀÇ Àü¿¡ Àû¿ëµË´Ï´Ù¸¸,
HAVING
Á¶°ÇÀº ±×·ìÈ µÈ ÈÄ¿¡ Àû¿ëµË´Ï´Ù.
Zend_Db_Select ±×·³, ±×·ì¿¡ ´ëÇÑ Á¦¾àÀ» ÁöÁ¤ÇÏ·Á¸é
having()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ ¸Þ¼ÒµåÀÇ »ç¿ë¹ýÀº where()
¸Þ¼Òµå¿Í ´à¾Æ ÀÖ½À´Ï´Ù.
ÃÖÃÊÀÇ Àμö°¡ SQL ÀÇ ½ÄÀ» Æ÷ÇÔÇÑ ¹®ÀÚ¿ÀÔ´Ï´Ù.µÎ¹øÂ°ÀÇ Àμö´Â ¿É¼ÇÀ¸·Î,
SQL ½Ä¾ÈÀÇ ÆÄ¶ó¹ÌÅÍ Ç÷¹À̽ºÈ¦´õ¸¦ ¿Å°Ü³õ´Â °ªÀÌ µË´Ï´Ù.
having()
(À»)¸¦ ¿©·¯ Â÷·Ê ½ÇÇàÇϸé, ±×·¯ÇÑ Á¶°ÇÀÌ
³í¸® ¿¬»êÀÚ AND
±×¸®°í ¿¬°áµË´Ï´Ù.
orHaving()
¸Þ¼Òµå¸¦ »ç¿ëÇßÀ» °æ¿ì´Â, ³í¸® ¿¬»êÀÚ
OR
±×¸®°í ¿¬°áµË´Ï´Ù.
·Ê 10.60. having() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", COUNT(*) AS line_items_per_product
// FROM "products" AS p JOIN "line_items" AS l
// ON p.product_id = l.product_id
// GROUP BY p.product_id
// HAVING line_items_per_product > 10
$select = $db->select()
->from(array('p' => 'products'),
array('product_id'))
->join(array('l' => 'line_items'),
'p.product_id = l.product_id',
array('line_items_per_product' => 'COUNT(*)'))
->group('p.product_id')
->having('line_items_per_product > 10');
![]() |
ÁÖÀÇ |
---|---|
|
SQL ÀÇ ORDER BY
±¸¿¡¼´Â,
Äõ¸®ÀÇ °á°ú ¼¼Æ®°¡ ´Ã¾î³õ¾Æ ¹Ù²Ù¾îÀÇ ±âÁØÀÌ µÇ´Â Ä÷³À̳ª ½ÄÀ» ÁöÁ¤ÇÕ´Ï´Ù.
º¹¼öÀÇ Ä÷³À» ÁöÁ¤Çϸé, ÃÖÃÊÀÇ Ä÷³ÀÇ °ªÀÌ °°¾Ò´ø °æ¿ì¿¡
µÎ¹øÂ°ÀÇ Ä÷³À» ÀÌ¿ëÇØ ´Ã¾î³õ¾Æ ¹Ù²Ù¾î¸¦ ½Ç½ÃÇÕ´Ï´Ù.
µðÆúÆ®¿¡¼´Â, ÀÛÀº ÆíÀ¸·ÎºÎÅÍ Å« ÆíÀ¸·Î ÇâÇØ ´Ã¾î³õ¾Æ ¹Ù²ß´Ï´Ù.
¹Ý´ë·Î Å« ÆíÀ¸·ÎºÎÅÍ ÀÛÀº ÆíÀ¸·Î ÇâÇØ ´Ã¾î³õ¾Æ ¹Ù²Ù·Á¸é ,
Ä÷³ ¸®½ºÆ®¾ÈÀÇ ±× Ä÷³¸íÀÇ µÚ¿¡, Ű¿öµå
DESC
(À»)¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
Zend_Db_Select ±×·³,order()
¸Þ¼Òµå¸¦ »ç¿ëÇØ
´Ã¾î³õ¾Æ ¹Ù²Ù¾îÀÇ ±âÁØÀÌ µÇ´Â Ä÷³ ȤÀº Ä÷³ÀÇ ¹è¿À» ÁöÁ¤ÇÕ´Ï´Ù.
¹è¿ÀÇ °¢ ¿ä¼Ò´Â Ä÷³¸íÀ» ³ªÅ¸³»´Â ¹®ÀÚ¿ÀÔ´Ï´Ù.¿É¼ÇÀ¸·Î¼
½ºÆäÀ̽º¸¦ ³¢¿ö Ű¿öµå
ASC
(ÀÌ)³ª DESC
(À»)¸¦ °è¼ÓÇÕ´Ï´Ù.
from()
¸Þ¼Òµå³ª group()
¸Þ¼Òµå¿Í °°ÀÌ, Ä÷³¸íÀº ½Äº°Àڷμ ÄíÆ® µË´Ï´Ù.
´Ù¸¸, ¹®ÀÚ¿¿¡ °ýÈ£°¡ Æ÷ÇԵǰųª
Zend_Db_Expr ÇüÅÂÀÇ ¿ÀºêÁ§Æ®¸¦ ÁöÁ¤Çϰųª ÇßÀ» °æ¿ì´Â º°µµÀÔ´Ï´Ù.
·Ê 10.61. order() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", COUNT(*) AS line_items_per_product
// FROM "products" AS p JOIN "line_items" AS l
// ON p.product_id = l.product_id
// GROUP BY p.product_id
// ORDER BY "line_items_per_product" DESC, "product_id"
$select = $db->select()
->from(array('p' => 'products'),
array('product_id'))
->join(array('l' => 'line_items'),
'p.product_id = l.product_id',
array('line_items_per_product' => 'COUNT(*)'))
->group('p.product_id')
->order(array('line_items_per_product DESC', 'product_id'));
RDBMS ¿¡ µû¶ó¼´Â,SQL (À»)¸¦ È®ÀåÇϰí, À̸¥¹Ù
LIMIT
±¸¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çϰí ÀÖ´Â °Íµµ ÀÖ½À´Ï´Ù.
À̰ÍÀº, °á°ú ¼¼Æ®ÀÇ Çà¼ö¸¦, ÃÖ´ë¿¡¼µµ ÁöÁ¤ÇÑ ¼ö±îÁö Á¦ÇÑÇÕ´Ï´Ù.
¶Ç, Ãâ·ÂÀ» ½ÃÀÛÇϱâ Àü¿¡ ÀÐ¾î ³¯¸®´Â Çà¼ö¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÀÌ ±â´ÉÀ» »ç¿ëÇϸé, °á°ú ¼¼Æ®ÀÇ ÀϺθ¸À» ÃëµæÇÏ´Â °ÍÀÌ °£´ÜÇÏ°Ô µË´Ï´Ù.
¿¹¸¦ µé¾î, Äõ¸®ÀÇ °á°ú¸¦ ÆäÀÌÁö·Î ³ª´©¾î Ãâ·ÂÇÏ´Â °æ¿ì µî¿¡ Æí¸®ÇÕ´Ï´Ù.
Zend_Db_Select ±×·³,limit()
¸Þ¼Òµå¸¦ »ç¿ëÇØ °á°úÀÇ Çà¼ö ¹× ÀÐ¾î ºñÇØÀÇ Çà¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
ÀÌ ¸Þ¼ÒµåÀÇ ÃÖÃÊÀÇ Àμö´Â ÃëµæÇÏ°í ½ÍÀº Çà¼ö,
±×¸®°í µÎ¹øÂ°ÀÇ Àμö´Â ÀÐ¾î ³¯¸®´Â Çà¼ö°¡ µË´Ï´Ù.
·Ê 10.62. limit() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", p."product_name"
// FROM "products" AS p
// LIMIT 10, 20
$select = $db->select()
->from(array('p' => 'products'), array('product_id', 'product_name'))
->limit(10, 20);
![]() |
ÁÖÀÇ |
---|---|
|
ÇÑÆí,limitPage()
¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â °Í¿¡ ÀÇÇØµµ Çà¼ö¿Í ¿ÀÇÁ¼ÂÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â, Äõ¸®ÀÇ °á°ú ¼¼Æ® Àüü·ÎºÎÅÍ Æ¯Á¤ÀÇ °³¼Ò°¡ ¿¬¼ÓÇÑ ÇุÀ» ÃëµæÇÏ´Â °ÍÀÔ´Ï´Ù.
Áï, °á°úÀÇ ¡¸ÆäÀÌÁö¡¹¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î,
±× ÆäÀÌÁö¿¡ ÇØ´çÇÏ´Â ºÎºÐÀÇ °á°ú¸¸À» ÃëµæÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
limitPage()
¸Þ¼ÒµåÀÇ ÃÖÃÊÀÇ Àμö¿¡ ÆäÀÌÁö¼ö,
2 ¹øÂ°ÀÇ Àμö¿¡ ÆäÀÌÁö ±ÙóÀÇ Çà¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
¾î´À ÂÊÀÇ Àμöµµ Çʼö·Î, µðÆúƮġ´Â ¾ø½À´Ï´Ù.
·Ê 10.63. limitPage() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p."product_id", p."product_name"
// FROM "products" AS p
// LIMIT 10, 20
$select = $db->select()
->from(array('p' => 'products'), array('product_id', 'product_name'))
->limitPage(2, 10);
distinct()
¸Þ¼Òµå¸¦ »ç¿ëÇϸé,SQL Äõ¸®¿¡
DISTINCT
Ű¿öµå¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
·Ê 10.64. distinct() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT DISTINCT p."product_name"
// FROM "products" AS p
$select = $db->select()
->distinct()
->from(array('p' => 'products'), 'product_name');
ÀÌ ¸¶µð¿¡¼´Â,Zend_Db_Select ¿ÀºêÁ§Æ®°¡ ³ªÅ¸³»´Â Äõ¸®¸¦ ½ÇÇàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
Zend_Db_Select ¿ÀºêÁ§Æ®°¡ ³ªÅ¸³»´Â Äõ¸®¸¦ ½ÇÇàÇÏ·Á¸é , ±×°ÍÀ»
Zend_Db_Adapter_Abstract ¿ÀºêÁ§Æ®ÀÇ query()
¸Þ¼ÒµåÀÇ ÃÖÃÊÀÇ Àμö·Î¼ °Ç³×ÁÝ´Ï´Ù.±×·¯ÀÚ(¸é),
¹®ÀÚ¿ÀÇ Äõ¸®´ë½Å¿¡ Zend_Db_Select ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ°Ô µË´Ï´Ù.
query()
¸Þ¼Òµå´Â, ¾î´ðÅÍÀÇ ÇüÅ¿¡ ÀÇÇØ¼
Zend_Db_Statement ȤÀº PDOStatement
ÇüÅÂÀÇ ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
·Ê 10.66. Db ¾î´ðÅÍÀÇ query() ¸Þ¼ÒµåÀÇ »ç¿ë¿¹
<?php
$select = $db->select()
->from('products');
$stmt = $db->query($select);
$result = $stmt->fetchAll();
¾î´ðÅÍ ¿ÀºêÁ§Æ®ÀÇ query()
¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â ÀÌ¿Ü ¹æ¹ýÀ¸·Î¼´Â,Zend_Db_Select
¿ÀºêÁ§Æ®ÀÇ query()
¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù.
¾î´À ÂÊÀÇ ¸Þ¼Òµåµµ, ¾î´ðÅÍÀÇ ÇüÅ¿¡ ÀÇÇØ¼
Zend_Db_Statement ȤÀº PDOStatement
ÇüÅÂÀÇ ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
·Ê 10.67. Select ¿ÀºêÁ§Æ®ÀÇ query ¸Þ¼ÒµåÀÇ »ç¿ë¿¹
<?php
$select = $db->select()
->from('products');
$stmt = $select->query();
$result = $stmt->fetchAll();
Zend_Db_Select ¿ÀºêÁ§Æ®¿¡ ´ëÀÀÇÑ´Ù
SQL Äõ¸® ¹®ÀÚ¿¿¡ ¾×¼¼½º ÇÏ°í ½ÍÀº °æ¿ì´Â,
__toString()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
·Ê 10.68. __toString() ¸Þ¼ÒµåÀÇ ¿¹
<?php
$select = $db->select()
->from('products');
$sql = $select->__toString();
echo "$sqln";
// Ãâ·ÂÀº, ´ÙÀ½°ú °°Àº ¹®ÀÚ¿ÀÌ µË´Ï´Ù
// SELECT * FROM "products"
ÀÌ ¸¶µð¿¡¼´Â, Áö±Ý±îÁö ÁÖ¾î ¿ÀÁö ¾Ê¾Ò´Ù Zend_Db_Select
Ŭ·¡½ºÀÇ ¸Þ¼ÒµåÀÌ´Ù getPart()
¹×
reset()
¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
getPart()
¸Þ¼Òµå´Â,SQL Äõ¸®ÀÇ ÀϺθ¦ µ¹·ÁÁÝ´Ï´Ù.
¿¹¸¦ µé¾î, ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇϸé,
WHERE
±¸ÀÇ ½ÄÀ» ³ªÅ¸³»´Â ¹è¿À̳ª
SELECT
ÇÏ´Â Ä÷³ (ȤÀº ½Ä) ÀÇ ¹è¿, ¶Ç´Â
LIMIT
±¸ÀÇ Ä«¿îÆ®³ª ¿ÀÇÁ¼ÂÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
µ¹¾Æ°¡ °ªÀº,SQL ÀÇ ÀϺθ¦ »©³½ ¹®ÀÚ¿ÀÌ ¾Æ´Õ´Ï´Ù. ¿ÀºêÁ§Æ®·ÎÀÇ ³»ºÎ Ç¥ÇöÀ¸·Î, Åë»óÀº °ª°ú ½ÄÀ» Æ÷ÇÔÇÑ ¹è¿ÀÌ µË´Ï´Ù. Äõ¸®ÀÇ °¢ ºÎºÐ¿¡ ÀÇÇØ¼, ±× ±¸Á¶´Â ´Ù¸¨´Ï´Ù.
getPart()
¸Þ¼ÒµåÀÇ Àμö´Â Çϳª·Î,
Select Äõ¸®ÀÇ ¾î´À ºÎºÐÀ» µ¹·ÁÁÖ´ÂÁö¸¦ ¿©±â¼ ÁöÁ¤ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î, ¹®ÀÚ¿ 'from'
(À»)¸¦ ÁöÁ¤Çϸé,
Select ¿ÀºêÁ§Æ®°¡ FROM
±¸·Î¼ º¸°ü À¯ÁöÇϰí ÀÖ´Â Å×À̺íÀÇ Á¤º¸¸¦ µ¹·ÁÁÝ´Ï´Ù.
¿©±â¿¡´Â °áÇÕÇϰí ÀÖ´Â ´Ù¸¥ Å×ÀÌºíµµ Æ÷ÇԵ˴ϴÙ.
Zend_Db_Select Ŭ·¡½º¿¡¼´Â,SQL Äõ¸®ÀÇ °¢ ºÎºÐÀ» ÁöÁ¤Çϱâ À§ÇÑ Á¤¼ö¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Á¤¼ö, ȤÀº ¸®ÅÍ·² ¹®ÀÚ¿ÀÇ ¾î´ÀÂÊÀ̵çÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 10.2. getPart() ¹× reset() ±×¸®°í »ç¿ëÇÏ´Â Á¤¼ö
Á¤¼ö | ¹®ÀÚ¿Ä¡ |
---|---|
Zend_Db_Select::DISTINCT |
'distinct' |
Zend_Db_Select::FOR_UPDATE |
'forupdate' |
Zend_Db_Select::COLUMNS |
'columns' |
Zend_Db_Select::FROM |
'from' |
Zend_Db_Select::WHERE |
'where' |
Zend_Db_Select::GROUP |
'group' |
Zend_Db_Select::HAVING |
'having' |
Zend_Db_Select::ORDER |
'order' |
Zend_Db_Select::LIMIT_COUNT |
'limitcount' |
Zend_Db_Select::LIMIT_OFFSET |
'limitoffset' |
·Ê 10.69. getPart() ¸Þ¼ÒµåÀÇ ¿¹
<?php
$select = $db->select()
->from('products')
->order('product_id');
// ¹®ÀÚ¿ ¸®ÅÍ·²À» »ç¿ëÇØ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù
$orderData = $select->getPart( 'order' );
// °°Àº °ÍÀ», Á¤¼ö¸¦ ÀÌ¿ëÇØ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù
$orderData = $select->getPart( Zend_Db_Select::ORDER );
// µ¹¾Æ°¡ °ªÀº, ¹®ÀÚ¿Àº ¾Æ´Ï°í ¹è¿ÀÌ µË´Ï´Ù.
// °¢ ºÎºÐÀÌ ´Ù¸¥ ±¸Á¶°¡ µÇ¾î ÀÖ½À´Ï´Ù.
print_r( $orderData );
reset()
¸Þ¼Òµå¸¦ »ç¿ëÇϸé,
SQL Äõ¸®ÀÇ ÁöÁ¤ÇÑ ºÎºÐ¸¸À» ¼Ò°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
Àμö¸¦ »ý·« ÇßÀ» °æ¿ì´Â, ¸ðµç ºÎºÐÀ» ¼Ò°ÅÇÕ´Ï´Ù.
Àμö´Â Çϳª·Î, À̰ÍÀº »ý·« °¡´ÉÇÕ´Ï´Ù.
¼Ò°ÅÇÏ°í ½Í´Ù SQL ÀÇ ºÎºÐÀ»,getPart()
¸Þ¼ÒµåÀÇ Àμö¿Í °°Àº ¹®ÀÚ¿·Î ÁöÁ¤ÇÕ´Ï´Ù.
Äõ¸®ÀÇ ÁöÁ¤ÇÑ ºÎºÐÀÌ, µðÆúÆ® »óÅ·Πµ¹¾Æ¿É´Ï´Ù.
ÆÄ¶ó¹ÌÅ͸¦ »ý·« Çϸé,reset()
(Àº)´Â Äõ¸®ÀÇ ¸ðµç ºÎºÐÀ» µðÆúÆ® »óÅ¿¡ µÇµ¹¸³´Ï´Ù.
À̰Ϳ¡ ÀÇÇØ,Zend_Db_Select ¿ÀºêÁ§Æ®´Â Ãʱ⠻óÅÂ¿Í µ¿µîÇÏ°Ô µË´Ï´Ù.
Áï, ÃÖÃÊ·Î ÀνºÅϽº¸¦ ÀÛ¼ºÇßÀ» ¶§¿Í °°Àº »óŶó°í ÇÏ´Â °ÍÀÔ´Ï´Ù.
·Ê 10.70. reset() ¸Þ¼ÒµåÀÇ ¿¹
<?php
// ¿Ï¼ºµÇ´Â Äõ¸®´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù
// SELECT p.*
// FROM "products" AS p
// ORDER BY "product_name"
$select = $db->select()
->from(array('p' => 'products')
->order('product_name');
// Á¶°ÇÀ» º¯°æÇØ, ´Ù¸¥ Ä÷³À¸·Î ³ª¶õÇØÁú ¼ö ÀÖ´Â ¹Ù²ß´Ï´Ù
// SELECT p.*
// FROM "products" AS p
// ORDER BY "product_id"
// ÀçÁ¤ÀÇÇϱâ À§ÇØ(¶§¹®¿¡), ÇÑ ¹ø ÀÌ ºÎºÐÀ» ¼Ò°ÅÇÕ´Ï´Ù
$select->reset( Zend_Db_Select::ORDER );
// ±×¸®°í ´Ù¸¥ Ä÷³À» ÁöÁ¤ÇÕ´Ï´Ù
$select->order('product_id');
// Äõ¸® Àüü¸¦ ¼Ò°ÅÇÕ´Ï´Ù
$select->reset();