ในระบบฐานข้่อมูลอย่าง mySQL มีหลายคำสั่งที่จะช่วยให้งานของเราง่ายขึ้น
อย่างคำสั่ง UNION ซึ่งนำการค้นข้อมูลจากหลายๆ คำค้นมาต่อเชื่อมกันเป็นตารางเดียว
คำสั่งนี้ บางคนอาจจะยังไม่ทราบ ผมขอเขียนตัวอย่างให้ดูสั้นๆ ล่ะกัน
(Query1) UNION (Query2)
โอ้ววว สั้นจริงๆ แฮะๆ
ผลลัพธ์ที่จะได้จากคำสั่งเมื่อกี้คือ
แถวที่เกิดขึ้นจะเกิดจาก ข้อมูลทั้งสองต่อเรียงกัน
เอาล่ะ สืบต่อจากหัวข้อก็คือ
ถ้าเราต้องการข้อมูลที่อยู่ในตารางที่หนึ่ง แต่ไม่อยู่ในตารางที่สอง
จะเขียนคำสั่งอย่างไรดี???
ก่อนหน้านี้ ผู้เขียนประสบปัญหาจากข้อมูลที่มีจำนวนมาก
ตัดสินใจไม่ได้สักที ว่าจะเริ่มคัดกรองอย่างไร
จนมาจบลงที่ ขั้นตอนง่ายๆ ของเรื่อง SUBSET
มาดูลักษณะคำสั่งที่ใช้กัน
- อยู่ทั้งใน A และ B
SELECT a.id FROM a LEFT JOIN b ON a.id = b.aid WHERE a.id IS NOT NULL or b.aid IS NOT NULL;
- อยู่ใน A แต่ไม่อยู่ ใน B
SELECT a.id FROM a LEFT JOIN b ON a.id = b.aid WHERE b.aid IS NULL;
ลองไปใช้ดูนะครับ
ลิงค์อ่านเพิ่มเติมนะครับ :: Link1
Nov 27, 2008
การตัดทศนิยมแบบปัดตัวเลขและไม่ปัดตัวเลข
เนื่องจากมีการคำนวณบางอย่างที่มีทศนิยมหลายตำแหน่ง
ซึ่งการทำงานรายงาน หรือทำเว็บหรือโปรแกรมที่เกี่ยวข้องนั้น
จำเป็นต้องศึกษา เรื่องของข้อมูลที่จะนำมาคำนวณเป็นอย่างดี
เพราะนั่นอาจจะเป็นจุดหนึ่งที่ทำให้ คุณต้องถูกฟ้องร้องทีหลังได้
หากไม่รอบคอบในครั้งนี้
การตัดตัวเลขทศนิยม มีการตัดอยู่สองแบบ
คือ ตัดแบบมีการปัดเศษ เช่น
1.7869 => ปัดให้เหลือสองตำแหน่ง => 1.79
หรือ ตัดแบบไม่สนใจทศนิยมตัวถัดไป เช่น
1.7869 => ปัดให้เหลือสองตำแหน่ง => 1.78
ทั้งสองกรณีมีโอกาสได้ใช้ทั้งนั้น
ซึ่ง mySQL มีความสามารถนี้อยู่เช่นกัน โดยการใช้ คำสั่งดังนี้
- ตัดแบบมีการปัดเศษ จะใช้ ROUND(X), ROUND(X,D)
ROUND(1.7869,2) => 1.79
- ตัดแบบไม่สนใจทศนิยมตัวถัดไป จะใช้ TRUNCATE(X,D)
TRUNCATE(1.7869,2) => 1.78
ขอให้โชคดีครับ ^ ^
ลิงค์เพิ่มเติมนะครับ :: Link1
ซึ่งการทำงานรายงาน หรือทำเว็บหรือโปรแกรมที่เกี่ยวข้องนั้น
จำเป็นต้องศึกษา เรื่องของข้อมูลที่จะนำมาคำนวณเป็นอย่างดี
เพราะนั่นอาจจะเป็นจุดหนึ่งที่ทำให้ คุณต้องถูกฟ้องร้องทีหลังได้
หากไม่รอบคอบในครั้งนี้
การตัดตัวเลขทศนิยม มีการตัดอยู่สองแบบ
คือ ตัดแบบมีการปัดเศษ เช่น
1.7869 => ปัดให้เหลือสองตำแหน่ง => 1.79
หรือ ตัดแบบไม่สนใจทศนิยมตัวถัดไป เช่น
1.7869 => ปัดให้เหลือสองตำแหน่ง => 1.78
ทั้งสองกรณีมีโอกาสได้ใช้ทั้งนั้น
ซึ่ง mySQL มีความสามารถนี้อยู่เช่นกัน โดยการใช้ คำสั่งดังนี้
- ตัดแบบมีการปัดเศษ จะใช้ ROUND(X), ROUND(X,D)
ROUND(1.7869,2) => 1.79
- ตัดแบบไม่สนใจทศนิยมตัวถัดไป จะใช้ TRUNCATE(X,D)
TRUNCATE(1.7869,2) => 1.78
ขอให้โชคดีครับ ^ ^
ลิงค์เพิ่มเติมนะครับ :: Link1
Out of range value adjusted for column error!
หัวข้อนี้เกี่ยวข้องกับการแก้ปัญหากรณีที่ เราไปกำหนดให้ mySQL
ตรวจสอบชนิดข้อมูล รวมถึงขนาดข้อมูล ที่เปิดไว้ในตารางของฐานข้อมูล
ถ้าหาก ชนิดที่กรอก หรือกำหนดข้อมูลเกินที่ได้กำหนดไว้
mySQL ก็จะแจ้งเราให้รู้ดังข้อความประมาณนี้ (บรรทัดล่าง)
"Out of range value adjusted..."
มันเป็นเรื่องถูกต้องแล้วล่ะที่ mySQL ไม่ยอมให้เรา Insert Data
เพราะข้อมูลที่ถูกนำเข้่าไป อาจจะขาดหาย หรือไม่สมบูรณ์
ซึ่งน่าจะส่งผลเสียในภายหลังได้
แต่ทั้งนี้บางคนอยากจะเปิดให้ยอมให้กรอกข้อมูลเข้าไปได้
เราก็มีวิธีมาแนะนำ ดังนี้
เข้าไปแก้ไฟล์ my.ini ของ mySQL
โดยไปปิดคำสั่งเอาไว้ ลองเทียบดูกับคำสั่งด้านล่างนะครับ
--------------------------------
# Set the SQL mode to strict
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
--------------------------------
เมื่อ restart service mySQL ก็จะสามารถนำข้อมูลเ้จ้าปัญหาดังกล่าว เข้าสู่ตารางข้อมูลได้แล้ว ครับ ^ ^
ข้อมูลที่เกี่ยวข้อง ::
Link1
ตรวจสอบชนิดข้อมูล รวมถึงขนาดข้อมูล ที่เปิดไว้ในตารางของฐานข้อมูล
ถ้าหาก ชนิดที่กรอก หรือกำหนดข้อมูลเกินที่ได้กำหนดไว้
mySQL ก็จะแจ้งเราให้รู้ดังข้อความประมาณนี้ (บรรทัดล่าง)
"Out of range value adjusted..."
มันเป็นเรื่องถูกต้องแล้วล่ะที่ mySQL ไม่ยอมให้เรา Insert Data
เพราะข้อมูลที่ถูกนำเข้่าไป อาจจะขาดหาย หรือไม่สมบูรณ์
ซึ่งน่าจะส่งผลเสียในภายหลังได้
แต่ทั้งนี้บางคนอยากจะเปิดให้ยอมให้กรอกข้อมูลเข้าไปได้
เราก็มีวิธีมาแนะนำ ดังนี้
เข้าไปแก้ไฟล์ my.ini ของ mySQL
โดยไปปิดคำสั่งเอาไว้ ลองเทียบดูกับคำสั่งด้านล่างนะครับ
--------------------------------
# Set the SQL mode to strict
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
--------------------------------
เมื่อ restart service mySQL ก็จะสามารถนำข้อมูลเ้จ้าปัญหาดังกล่าว เข้าสู่ตารางข้อมูลได้แล้ว ครับ ^ ^
ข้อมูลที่เกี่ยวข้อง ::
Link1
กำหนดให้ mySQL อ่านภาษาไทยได้
หลายๆ คนที่เริ่มทำงานไปสักพัก ก็ต้องมีบ้างที่รู้สึกว่า
บางส่วนในงานเริ่มทำงานไม่ได้ดั่งใจ
สำหรับชาวไอที หรือบรรดาผู้พัฒนาโปรแกรมมือใหม่
ที่จำเป็นต้องติดต่อฐานข้อมูล เช่น PHP+mySQL หรือ JSP+mySQL
มักจะเริ่มต้นพัฒนาด้วยการติดตั้ง Appserv ซึ่งเป็นตัวที่รวมเครื่องมือ
ให้สามารถลงได้สะดวก คือลงเสร็จ ก็สามารถพัฒนาเว็บไซต์
ภาษา PHP กับ mySQL ได้ทันที โดยไม่จำเป็นต้องมีความรู้อะไรมากนัก
จริงอยู่ ที่ว่า Appserv มีประโยชน์ที่ทำให้เราสามารถเริ่มพัฒนางานได้เร็วขึ้น
แต่ถ้าหากได้ทำงานในองค์กร แล้วล่ะก็ทางเลือกที่จะใช้ Appserv นั้นดูจะไม่เหมาะนัก
ผู้เขียนเองแม้ยังเป็นเพียงผู้พัฒนาวัยละอ่อน แต่คาดว่า นี่อาจเป็นทางเลือกที่ดีกว่า ^ ^
อย่ากลัว! ที่จะเปลี่ยนแปลง
ความรู้ที่ใหม่ๆ บางครั้ง มันก็ได้มาพร้อมกับปัญหาที่ใหม่ๆ เหมือนกัน
เอาล่ะปัญหา แรกที่เราน่าจะพบกัน
คือปัญหาการแสดงผลภาษาไทยของ mySQL
สิ่งที่สังเกตได้ว่าเราเข้าข่ายที่ต้องแก้ไข mySQL ให้ภาษาไทยกลับมาอ่านออกเขียนได้กัน
อันดับแีรก เข้าไปหาไฟล์ ชื่อ my.ini หรือ my.cnf (Linux)
จากนั้น นำบรรทัดข้างล่าง ไปเทียบแล้ว เพิ่มเข้าไป
mySQL ของเรา เมื่อ restart service ก็จะสามารถอ่านภาษาไทยได้แล้ว ^ ^
---------------------------------------------
[mysqld]
skip-character-set-client-handshake
default-character-set=tis620
init_connect='SET collation_connection = tis620_thai_ci'
init_connect='SET NAMES tis620'
---------------------------------------------
หวังว่าคงจะทำได้กันนะครับ
บางส่วนในงานเริ่มทำงานไม่ได้ดั่งใจ
สำหรับชาวไอที หรือบรรดาผู้พัฒนาโปรแกรมมือใหม่
ที่จำเป็นต้องติดต่อฐานข้อมูล เช่น PHP+mySQL หรือ JSP+mySQL
มักจะเริ่มต้นพัฒนาด้วยการติดตั้ง Appserv ซึ่งเป็นตัวที่รวมเครื่องมือ
ให้สามารถลงได้สะดวก คือลงเสร็จ ก็สามารถพัฒนาเว็บไซต์
ภาษา PHP กับ mySQL ได้ทันที โดยไม่จำเป็นต้องมีความรู้อะไรมากนัก
จริงอยู่ ที่ว่า Appserv มีประโยชน์ที่ทำให้เราสามารถเริ่มพัฒนางานได้เร็วขึ้น
แต่ถ้าหากได้ทำงานในองค์กร แล้วล่ะก็ทางเลือกที่จะใช้ Appserv นั้นดูจะไม่เหมาะนัก
ผู้เขียนเองแม้ยังเป็นเพียงผู้พัฒนาวัยละอ่อน แต่คาดว่า นี่อาจเป็นทางเลือกที่ดีกว่า ^ ^
อย่ากลัว! ที่จะเปลี่ยนแปลง
ความรู้ที่ใหม่ๆ บางครั้ง มันก็ได้มาพร้อมกับปัญหาที่ใหม่ๆ เหมือนกัน
เอาล่ะปัญหา แรกที่เราน่าจะพบกัน
คือปัญหาการแสดงผลภาษาไทยของ mySQL
สิ่งที่สังเกตได้ว่าเราเข้าข่ายที่ต้องแก้ไข mySQL ให้ภาษาไทยกลับมาอ่านออกเขียนได้กัน
อันดับแีรก เข้าไปหาไฟล์ ชื่อ my.ini หรือ my.cnf (Linux)
จากนั้น นำบรรทัดข้างล่าง ไปเทียบแล้ว เพิ่มเข้าไป
mySQL ของเรา เมื่อ restart service ก็จะสามารถอ่านภาษาไทยได้แล้ว ^ ^
---------------------------------------------
[mysqld]
skip-character-set-client-handshake
default-character-set=tis620
init_connect='SET collation_connection = tis620_thai_ci'
init_connect='SET NAMES tis620'
---------------------------------------------
หวังว่าคงจะทำได้กันนะครับ
Subscribe to:
Posts (Atom)
Blog Comment
บทความที่ได้รับความนิยม
-
ราวสองปีก่อนผมและเพื่อนมีโอกาสเช่ารถมอเตอร์ไซค์เที่ยวที่อยุธยา ช่วงนั้นทุกอย่างยังดูดีและยังไม่เกิดเหตุการณ์น้ำท่วม ซึ่งถ้าต้องการดูก็หาจา...
-
เนื่องจากมีการคำนวณบางอย่างที่มีทศนิยมหลายตำแหน่ง ซึ่งการทำงานรายงาน หรือทำเว็บหรือโปรแกรมที่เกี่ยวข้องนั้น จำเป็นต้องศึกษา เรื่องของข้อมูลท...
-
วิธีการในเบื้องต้น ต้องทราบก่อนนะครับว่าระบบเราเป็นอย่างไร ของผมนั้น เป็น Huawei SmartAX MT880 จาก TT&T อยากให้กำหนดไว้ตามนี้นะครับ จากร...
-
งานว่าง ว่างงาน ได้เวลาของการ อัพเดต Blog ทริป เชียงคาน เกิดขึ้นไม่ได้เกี่ยวกับการตามหา นาธาน แต่อย่างใด แต่เกิดจากกระแส เสียงลือ เสียงเล่าอ...
-
ปัญหาที่ผมพบคือ Lenovo U460 ที่ผมพึ่งซื้อมาและลง Win7 มีอาการลดความสว่างของหน้าจอลงเอง ทำเอาผมรำคาญมาก คิดว่าหลายคนก็คงเคยพบปัญหานี้ ปัญหานี...
-
ก่อนจะไปยังส่วนอื่น ขอแนะนำสำหรับมือใหม่ที่ยังไม่รู้จัก Thunderbird Thunderbird เป็นโปรแกรมที่ใช้งานเกี่ยวกับการรับ E-mail ที่อยู่ใน Mail Se...
-
โดยปกติ ถ้าเราต้องการติดตั้งให้ มี Server ที่สามารถใช้รันภาษา PHP บนเครื่องได้ โดยทั่วไปนั้น สามารถใช้ Appserv ซึ่งเป็นโปรแกรมสำเร็จรูป เมื่...
-
เป็นครั้งแรกสำหรับผมที่จะมาเล่าประสบการณ์การท่องเที่ยว ในมุมมองของตัวเอง มีอะไรอยากแนะนำก็ได้เช่นเคย comment กันได้ที่ด้านล่าง ทริป เกาะช...
-
ทริปนี้ ออกเดินทางเมื่อ 2012/09/08 โดยรถส่วนตัว มีเพื่อนร่วมทริป ราวๆ แปดคนได้ เราออกเดินทางกันจริงๆ ราวๆ 10.00 AM บึ่งไปเรื่อยๆ ราวๆ สี...
-
ใครบ้างที่ไม่รู้จัก Microsoft SQL SERVER 2005 อ่ะนั่นแน่ ก็คงต้องมีมั่งล่ะเนาะ ผมเองก็เคยเป็นคนไม่รู้จัก อีกเช่นกัน เพราะไปวิ่งเล่น พัฒนาโดย...