<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>เทคนิคการเขียนเว็บ เขียนโปรแกรม php คัดมา เน้น ๆ : webshowpow.com &#187; Query Optimization</title>
	<atom:link href="http://www.webshowpow.com/category/query-optimization/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webshowpow.com</link>
	<description>เทคนิคการเขียนเว็บ เขียนโปรแกรม php คัดมา เน้น ๆ</description>
	<lastBuildDate>Mon, 23 Aug 2010 11:59:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>วิธีการ Query เพิ่ม ลด วันเวลา</title>
		<link>http://www.webshowpow.com/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b2%e0%b8%a3-query-%e0%b9%80%e0%b8%9e%e0%b8%b4%e0%b9%88%e0%b8%a1-%e0%b8%a5%e0%b8%94-%e0%b8%a7%e0%b8%b1%e0%b8%99%e0%b9%80%e0%b8%a7%e0%b8%a5%e0%b8%b2/</link>
		<comments>http://www.webshowpow.com/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b2%e0%b8%a3-query-%e0%b9%80%e0%b8%9e%e0%b8%b4%e0%b9%88%e0%b8%a1-%e0%b8%a5%e0%b8%94-%e0%b8%a7%e0%b8%b1%e0%b8%99%e0%b9%80%e0%b8%a7%e0%b8%a5%e0%b8%b2/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 14:19:10 +0000</pubDate>
		<dc:creator>เลนส์เว้า</dc:creator>
				<category><![CDATA[Query Optimization]]></category>
		<category><![CDATA[7]]></category>
		<category><![CDATA[banner]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[ข้างหน้า]]></category>
		<category><![CDATA[วัน]]></category>
		<category><![CDATA[เวลา]]></category>

		<guid isPermaLink="false">http://www.webshowpow.com/?p=232</guid>
		<description><![CDATA[ในการทำงานบางครั้งเราจำเป็นที่จะต้อง query db โดยการเพิ่มหรือลด วันเวลา
สมมุติว่า
&#8221; เราต้องการจะได้ทราบว่า banner ของเวปเราที่จะหมดอายุในอีก 7 วันข้างหน้า มี banner อะไรบ้าง &#8221;
เราก็จะสามารถเขียน query ได้ดังนี้


1
2
3
SELECT banner_name 
FROM tb_banner
WHERE date_expire = NOW&#40;&#41; + INTERVAL 7 DAY

หน่วยของ INTERVAL ก็มีดังนี้
- MICROSECOND
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
&#160;
]]></description>
			<content:encoded><![CDATA[<p>ในการทำงานบางครั้งเราจำเป็นที่จะต้อง query db โดยการเพิ่มหรือลด วันเวลา</p>
<p><u>สมมุติว่า</u></p>
<p>&#8221; เราต้องการจะได้ทราบว่า banner ของเวปเราที่จะหมดอายุในอีก 7 วันข้างหน้า มี banner อะไรบ้าง &#8221;</p>
<p>เราก็จะสามารถเขียน query ได้ดังนี้</p>
<p><span id="more-232"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> banner_name 
<span style="color: #990099; font-weight: bold;">FROM</span> tb_banner
<span style="color: #990099; font-weight: bold;">WHERE</span> date_expire <span style="color: #CC0099;">=</span> <span style="color: #000099;">NOW</span><span style="color: #FF00FF;">&#40;</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">+</span> <span style="color: #CC0099; font-weight: bold;">INTERVAL</span> <span style="color: #008080;">7</span> <span style="color: #9900FF; font-weight: bold;">DAY</span></pre></td></tr></table></div>

<p>หน่วยของ INTERVAL ก็มีดังนี้<br />
- MICROSECOND<br />
- SECOND<br />
- MINUTE<br />
- HOUR<br />
- DAY<br />
- WEEK<br />
- MONTH<br />
- QUARTER<br />
- YEAR</p>
<p>&nbsp;</p>
<img src="http://www.webshowpow.com/?ak_action=api_record_view&id=232&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.webshowpow.com/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b2%e0%b8%a3-query-%e0%b9%80%e0%b8%9e%e0%b8%b4%e0%b9%88%e0%b8%a1-%e0%b8%a5%e0%b8%94-%e0%b8%a7%e0%b8%b1%e0%b8%99%e0%b9%80%e0%b8%a7%e0%b8%a5%e0%b8%b2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Query แบบมีเงื่อนไข</title>
		<link>http://www.webshowpow.com/query-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%a1%e0%b8%b5%e0%b9%80%e0%b8%87%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%99%e0%b9%84%e0%b8%82/</link>
		<comments>http://www.webshowpow.com/query-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%a1%e0%b8%b5%e0%b9%80%e0%b8%87%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%99%e0%b9%84%e0%b8%82/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 06:19:06 +0000</pubDate>
		<dc:creator>เลนส์เว้า</dc:creator>
				<category><![CDATA[Query Optimization]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[บทความ]]></category>
		<category><![CDATA[อนุมัติ]]></category>
		<category><![CDATA[เงื่อนไข]]></category>

		<guid isPermaLink="false">http://www.webshowpow.com/?p=104</guid>
		<description><![CDATA[สมมุติว่า เราต้องการค้นหาข้อมูล บทความ
ซึ่งถ้าบทความนั้นผ่านให้ เรียก ฟิวด์ อนุมัติโดยใคร มาแสดง
และถ้าบทความนั้นไม่ผ่านให้ เรียก ฟิวด์ ไม่อนุมัติโดยใคร มาแสดง
วิธีการ Query คือ

1
2
3
4
SELECT 
IF&#40;type=='Y',approveby,nonapproveby&#41;  AS name , topic 
FROM article  
LIMIT 0,10

หรืออีกวิธีหนึ่ง


1
2
3
4
5
6
SELECT
CASE WHEN &#40;type=='Y'&#41; THEN approveby
         WHEN &#40;type=='N'&#41; THEN nonapproveby
END AS name , topic
FROM article  
LIMIT 0,10

&#160;
(วิธีที่สอง สามารถที่จะให้มีเงื่อนไขได้มากกว่้า 2 เงื่อนไข)
&#160;
]]></description>
			<content:encoded><![CDATA[<p><strong>สมมุติว่า</strong> เราต้องการค้นหาข้อมูล บทความ<br />
ซึ่งถ้าบทความนั้นผ่านให้ เรียก ฟิวด์ อนุมัติโดยใคร มาแสดง<br />
และถ้าบทความนั้นไม่ผ่านให้ เรียก ฟิวด์ ไม่อนุมัติโดยใคร มาแสดง</p>
<p><strong>วิธีการ Query คือ</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> 
<span style="color: #009900;">IF</span><span style="color: #FF00FF;">&#40;</span><span style="color: #990099; font-weight: bold;">type</span><span style="color: #CC0099;">==</span><span style="color: #008000;">'Y'</span><span style="color: #000033;">,</span>approveby<span style="color: #000033;">,</span>nonapproveby<span style="color: #FF00FF;">&#41;</span>  <span style="color: #990099; font-weight: bold;">AS</span> name <span style="color: #000033;">,</span> topic 
<span style="color: #990099; font-weight: bold;">FROM</span> article  
<span style="color: #990099; font-weight: bold;">LIMIT</span> <span style="color: #008080;">0</span><span style="color: #000033;">,</span><span style="color: #008080;">10</span></pre></td></tr></table></div>

<p>หรืออีกวิธีหนึ่ง</p>
<p><span id="more-104"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span>
<span style="color: #009900;">CASE</span> <span style="color: #009900;">WHEN</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #990099; font-weight: bold;">type</span><span style="color: #CC0099;">==</span><span style="color: #008000;">'Y'</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #009900;">THEN</span> approveby
         <span style="color: #009900;">WHEN</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #990099; font-weight: bold;">type</span><span style="color: #CC0099;">==</span><span style="color: #008000;">'N'</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #009900;">THEN</span> nonapproveby
<span style="color: #009900;">END</span> <span style="color: #990099; font-weight: bold;">AS</span> name <span style="color: #000033;">,</span> topic
<span style="color: #990099; font-weight: bold;">FROM</span> article  
<span style="color: #990099; font-weight: bold;">LIMIT</span> <span style="color: #008080;">0</span><span style="color: #000033;">,</span><span style="color: #008080;">10</span></pre></td></tr></table></div>

<p>&nbsp;</p>
<p>(วิธีที่สอง สามารถที่จะให้มีเงื่อนไขได้มากกว่้า 2 เงื่อนไข)</p>
<p>&nbsp;</p>
<img src="http://www.webshowpow.com/?ak_action=api_record_view&id=104&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.webshowpow.com/query-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%a1%e0%b8%b5%e0%b9%80%e0%b8%87%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%99%e0%b9%84%e0%b8%82/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Distinct กับ Group by</title>
		<link>http://www.webshowpow.com/distinct-%e0%b8%81%e0%b8%b1%e0%b8%9a-group-by/</link>
		<comments>http://www.webshowpow.com/distinct-%e0%b8%81%e0%b8%b1%e0%b8%9a-group-by/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 09:32:21 +0000</pubDate>
		<dc:creator>เลนส์เว้า</dc:creator>
				<category><![CDATA[Query Optimization]]></category>
		<category><![CDATA[distinct]]></category>
		<category><![CDATA[group by]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.webshowpow.com/?p=97</guid>
		<description><![CDATA[DISTINCT เป็นคำสั่งที่ใช้หาข้อมูลที่ไม่ซ้ำออกมา ซึ่งถ้าข้อมูลซ้ำกันจะเลือกมาแค่ Record เดียว

1
2
3
SELECT DISTINCT&#40;member_id&#41; 
FROM member
LIMIT 0,10

GROUP BY เป็นคำสั่งที่มักจะใช้รวมกับ SUM เพื่อใช้ในการหาผลรวมของข้อมูล แต่ก็สามารถนำมาประยุกต์ เพื่อใช้ในการข้อมูลที่ไม่ซ้ำได้เหมือนกัน

1
2
3
4
SELECT member_id 
FROM member 
GROUP BY member_id
LIMIT 0,10

เรื่องที่จะบอกก็คือ
DISTINCT กับ GROUP BY ผลลัพธ์ของข้อมูลได้เหมือนกัน แต่ความเร็วในการ Query ต่างกันมาก กับข้อมูลมาก ๆ เพราะฉะนั้นมาเปลี่ยนมาใช้ GROUP BY ดีกว่า เพื่อความเร็วของ program และ db admin จะได้ไม่บ่น 
&#160;
]]></description>
			<content:encoded><![CDATA[<p><strong>DISTINCT</strong> เป็นคำสั่งที่ใช้หาข้อมูลที่ไม่ซ้ำออกมา ซึ่งถ้าข้อมูลซ้ำกันจะเลือกมาแค่ Record เดียว</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #990099; font-weight: bold;">DISTINCT</span><span style="color: #FF00FF;">&#40;</span>member_id<span style="color: #FF00FF;">&#41;</span> 
<span style="color: #990099; font-weight: bold;">FROM</span> member
<span style="color: #990099; font-weight: bold;">LIMIT</span> <span style="color: #008080;">0</span><span style="color: #000033;">,</span><span style="color: #008080;">10</span></pre></td></tr></table></div>

<p><strong>GROUP BY</strong> เป็นคำสั่งที่มักจะใช้รวมกับ SUM เพื่อใช้ในการหาผลรวมของข้อมูล แต่ก็สามารถนำมาประยุกต์ เพื่อใช้ในการข้อมูลที่ไม่ซ้ำได้เหมือนกัน</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> member_id 
<span style="color: #990099; font-weight: bold;">FROM</span> member 
<span style="color: #990099; font-weight: bold;">GROUP BY</span> member_id
<span style="color: #990099; font-weight: bold;">LIMIT</span> <span style="color: #008080;">0</span><span style="color: #000033;">,</span><span style="color: #008080;">10</span></pre></td></tr></table></div>

<p>เรื่องที่จะบอกก็คือ<br />
<strong>DISTINCT</strong> กับ <strong>GROUP BY</strong> ผลลัพธ์ของข้อมูลได้เหมือนกัน แต่ความเร็วในการ Query ต่างกันมาก กับข้อมูลมาก ๆ เพราะฉะนั้นมาเปลี่ยนมาใช้ <strong>GROUP BY</strong> ดีกว่า เพื่อความเร็วของ program และ db admin จะได้ไม่บ่น </p>
<p>&nbsp;</p>
<img src="http://www.webshowpow.com/?ak_action=api_record_view&id=97&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.webshowpow.com/distinct-%e0%b8%81%e0%b8%b1%e0%b8%9a-group-by/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
