Server รพ.ผมพัง ข้อมูลหายไปอาทิตย์หนึ่ง วุ่นวายหล่ะทีนี้ งานเข้าหล่ะ
DateTime : 2010-11-01 22:32:45
Post By : huwko
IP Address : 118.175.76.231
ใครเมตตามาช่วยกู้ข้อมูลให้ที Dell 2900 Raid 5 Boot Cenos ไม่ขึ้น แย่จัง
Message !!
หากต้องการตอบกระทู้ Webboard กรุณาเข้าใช้ระบบก่อนนะค่ะ..
กระทู้ตอบกลับ
MySql วันละคำ กับ perjer
ของผมจะเป็นการสอนการใช้แต่ถ้านำไปใช้จิรงก็ประยุกเอานะครับ และไม่ต้องแปลกใจกับ as dd นะครับ ผมแค่เอาค่าที่ได้ไปเก็บในตัวแปล dd เท่านั้นครับ หากมีผิดพลาดประการใดก็แนะนำด้วยครับ
อ้างอิงจาก http://dev.mysql.com/doc/ ครับส่นใจเข้าไปโหลดอ่านได้ครับ
// Mysql 5.0 ขึ้นไปนะครับ เพราะส่วนใหญ่ใช้ version 5 กันนะครับ ส่วนที่ตำกว่านี้ก็สามารถถามมาได้ครับ แล้วผมจะตอบให้ครับ
คำสั่ง if เงื่อนไข ครับ
select if ("a"="a",1,2) as dd ผลที่ได้ก็คือ 1 ครับ เพราะ a มันเท่ากับ a ก็จะเอา 1 มาแสดงครับ
select if ("a"="b",1,2) as dd ผลที่ได้ก็คือ 2 ครับ เพราะ a มันไม่เท่ากับ b ก็จะเอา 2 มาแสดงครับ
คำสั่ง substring การตัดตัวอักษร ครับ
select substring("123456789",1,5) as dd ค่าที่ได้คือ 12345 เพราะการผมตัดโดยกำหนดตำแหน่งที่ 1 ถึง 5 ครับ
substring_index("1234516789","1",2) as dd ค่าที่ได้ก็คือ 123451 เป็นการตัดโดยใช้การหาตำแหน่งตัวอักษรครับ จากคำสั่งนี้หมายถึง เอาตัวอักษรตังแต่เริ่มจนถึง 1 ตัวที่ จะเห็นว่ามีเลขหนึ่งสองตัวแต่
substring_index("1234516789","1",-1) as dd ค่าที่ได้คือ 16789 ครับต่างกันที่จุดเริ่มต้นอยู่ด้วยขวาครับ
คำสั่ง UPPER ทำตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
SELECT UPPER("perjerไทย") as dd จะได้เป็น PERJERไทย ครับภาษาไทยไม่เปลี่ยนอะครับไม่ต้องกลัว
คำสั่ง REPLACE แทนที่ตัวอักษรด้วยค่าที่ต้องการครับ
SELECT REPLACE("123456789", "56", "M") as dd ค่าที่ได้คือ 1234M789 ครับ เพราะผมแทนที่ 56 ด้วย M ครับ
คำสั่ง TIMESTAMPDIFF หาค่าความต่างของ เดือน กะ ปี ครับ
SELECT TIMESTAMPDIFF(MONTH,"2003-02-01","2003-05-01") as dd ค่าที่ได้คือ 3 ครับเพราะเดือน ห่างกัน 3 ครับ
SELECT TIMESTAMPDIFF(YEAR,"2001-01-01","2002-01-01") as dd ค่าที่ได้คือ 1 ครับ เพราะห่างกันหนึ่งปี
SELECT TIMESTAMPDIFF(day,"2001-01-01","2002-01-01") as dd ค่าที่ได้คือ 365 เพราะต่างกัน 1 เท่ากับ 365 วันไงละครับ
แตแค่นี้หลายคนก็คงยังมีคำถามในใจอีกว่าแล้วจะหาได้ วัน ที่ย้อนหลัง จากวันที่เรากำหนดได้เปล่า เช่น จะหาย้อนไป 28 วันของวันที่ 1/12/2550 ว่าเป็นวันที่เท่าไหรอะครับ นี้เลยครับคำสั่ง
SELECT FROM_DAYS(TO_DAYS("2007-12-01")-28) as dd ค่าที่ได้คือ 3/11/2550 นี่คือคำตอบ อิอิ
หรือ วันใช้ SELECT SUBDATE('1998-01-02', INTERVAL 28 day) as dd ผลที่ได้ก็คือ 2007-11-03 มีค่าเท่ากัน อิอิฃ
เดือนใช้ SELECT SUBDATE("2007-12-01", INTERVAL 1 MONTH) as dd ผลที่ได้คือ 2007-11-01
ถ้าปีก็ SELECT SUBDATE("2007-12-01", INTERVAL 1 year) as dd ผลที่ได้คือ 2006-12-01 แค่นี้ครับ
การใช้งาน Report Designer ครับ
หัวข้อแรกขอกล่าวถึง Variable ก่อนเลยครับ
เราสามารถเขียนคำสั่งและใช้ function ต่างๆได้เหมือนกันครับ เริ่มกันเลย นะครับ
1. เราสามารถปิดการแสดงของ Lable , Dbtext และตัวอื่นๆ รวมทั้งตัวมันเองด้วยครับ ตัวอย่างเช่น
หากมี Dbtext ที่มีค่าของ รหัสบัตรประจำตัวประชาชน ที่นี้ผมต้องการ ที่จะปิดตัว DbText กับ Lable ถ้าเลขบัตรเท่ากับ 1-1111-11111-11-1
ผมก็เขียนใน Varialeble ตัวหนึ่งดังนี้ ครับ
if (DBPipeline['mon'] = '1-1111-11111-11-1') then
begin
DbText1.visible := false;
Lable1.visible := false;
end else
begin
DbText1.visible := true;
Lable1.visible := true;
end;
หลักการก็ง่ายนิดเดียวครับ ชื่อของตัวที่เราต้องการปิด แล้วก็ .visible := จริง หรือ เท็จ
2. เราสามารถเอาค่าในตัวต่างๆ ออกมาบวกกันใน Variable เช่น ผมจะเขียน code ใน variable1 โดยเอาค่าจาก variable2 กับ variable3 มาบวกกัน แล้วแสดงใน variable1
ผมก็เข้าไปเขียนใน variable1 ดังนี้ครับ
value := variable2.value + variable3.value;
เป็นอันเสร็จสิ้นครับ
อีกอย่างที่อยากบอกวิธีใช้มันนั่นคือ memo ครับ หลายคนอาจอยากรู้ว่าใช้ยังไง เราก็สามารถเขียนใน variable ตัวหนึ่งเพื่อให้ค่าไปออกใน memo
เช่นผมเขียนใน variable1 ว่า
memo1.text := '12345678'; นี่คือวิธีการเอาค่าใส่ลงใน memo ง่ายไหมครับ
// 14/12/2550
ในการใช้ concat หากมี ฟิลด์ ไหนเกิดเป็นค่า Null ก็จะไม่มีค่าอะไรเกิดขึ้นเลย เช่น
SELECT CONCAT('My', NULL, 'QL') ผลที่ได้คือ null ไม่มีอะไรออกมาครับ ดังนั้นวิธิแก้ครับผมยกตัวอย่าง patient ในการรวมชื่อนะครับ
select concat(if(pname is null,'',pname),if(fname is null,'',fname),if(lname is null,'',lname)) as full_name from patient
แค่นี้อะครับก็ OK วันนี้แค่นี้ก่อนนะครับ
ใน Report Designer จจะมี function ที่ชือว่า GetPickupList(); หลายคนอาจเคยใช้ แต่หลายคนก็ยังใช้ไม่ค่อยเป็นวันนี้ วิธีใช้มาฝากครับ
ผมประกาศ ตัวแปลตัวหนึ่งขึ้นชื่อว่า pttype เป็น string ครับ จากนั้นก็เริ่มกันเลยครับ
ผมเขียนในส่วนของ Events นะครับ
pttype := GetPickupList('select "ALL" as name union select name from pttype '); // อาจจะมีคำถามถามว่า แล้ว Union นี้คืออะไร มันก็คือการเอา คำว่า ALL ไปรวมอยู่กับการเลือกสิทธิไงครับ ต่อเลยนะครับ
จากนั้นก็ต่อด้วย
if (pttype='') or (pttype='ALL') then
begin
pttype := '';
end else
begin
pttype := GetSQLStringData('select pttype from pttype where name="'+pttype+'" ');
pttype := ' pttype="'+pttype+'"';
end;
เป็นการเทียบค่าที่ เลือกจาก function ข้างบนครับว่าเข้าเลือก ALL หรือค่าว่าง (คือไม่ได้เลือกนั่นเอง) ถ้าเลือกALL หรือค่าว่าง (คือไม่ได้เลือกนั่นเอง) pttype เท่ากับค่าว่าง แต่ถ้าเลือกสิทธิอื่นก็จะมาทำข้างล้างครับ
ตัวอย่างบรรทัด pttype := ' pttype="'+pttype+'"'; จะได้ pttype มีค่าเท่ากับ ' pttype="เลขสิทธิที่เลือก" ครับ
จากนั้นก็ใช้นี่เลยครับ function ChangeReportSQL(); //
ChangeReportSQL('select * from vn_stat '+
' where '+pttype+' '+
' group by vn order by vstdate ');
แค่นี้เราก็จะได้รายงานที่สามารถเลือกสิทธิของผู้ป่วยได้แล้วครับว่าจะดูผู้ป่วยทุกสิทธิ หรือ เฉพาะสิทธิที่เราเลือก อิอิ
ลองดูนะครับไม่ได้ก็ถามมาครับ จะได้เป็น เทพ Admin
Post โดย : huwko Date: 2010-11-01 22:34:09 ip: 118.175.76.231
server ใช้งานได้หรือยังครับ ต้องหาสาเหตุก่อนครับว่าเกิดจากอะไร อาจมีใครไปทำอะไรมันหรือเปล่าครับ
ขอให้ใช้งานได้ไวๆๆนะครับ
Post โดย : chinaga Date: 2010-11-02 08:18:00 ip: 113.53.239.84
ยังเลยพี่ สงสัยต้องพิจารณาตัวเอง น้ำก็ท่วมอีก
Post โดย : huwko Date: 2010-11-02 09:31:33 ip: 118.175.76.231
มาเยี่ยมครับ บทความของจารยืโก้ เทพมาก
Server คงไม่เป็นไรมั๊ง ระดับนี้แล้ว ขอให้ boot ขึ้นเร็วๆ ครับ
และขอให้น้ำลดเร็วๆ เด้อ ส่งกำลังใจไปให้ครับ
Post โดย : boonyiam Date: 2010-11-02 09:50:03 ip: 118.175.76.78
ขอบคุณคับผม ข้อมูลหายไปตั้งแต่ 22 ตุลา หน่ะพี่ ตอนนี้ใช้ Server สำรองอยู่ รอกำลังเสริมจากพี่เหวย วันนี้ก่อนมาช่วยวิดน้ำออก ด้วย
Post โดย : huwko Date: 2010-11-02 10:41:20 ip: 118.175.76.231
เป็นกำลังใจให้
Post โดย : kroong Date: 2010-11-02 13:40:19 ip: 125.26.115.169
อือ แก้ได้ยัง
Post โดย : dogmike Date: 2010-11-02 15:20:10 ip: 203.113.118.77
แค่ 10 วันเอง ไม่ซีเรียส สะบายๆๆๆๆๆๆๆๆๆ
Post โดย : huwko Date: 2010-11-02 16:45:00 ip: 118.175.76.231
ใช้ได้ยังครับ ลูกพี่ อิอิอิ
Post โดย : ranja Date: 2010-11-02 20:02:20 ip: 203.113.116.117
สู้ๆค่ะจารย์โก้ เขาฉกรรจ์ รออยู่นะค่ะ อิอิ
Post โดย : manaw Date: 2010-11-02 20:29:52 ip: 223.207.137.22
ได้แล้วคับทุกท่าน ต้องขอบคุณพี่ สวอยมากนะคับ ลืม adapter อีก พี่เขาฉกรรจ์ อย่าลืมนะคับที่สัญญากันไว้ ผมจะไปเป็นชายฉะกันให้ได้ อิอิ
Post โดย : huwko Date: 2010-11-02 20:55:56 ip: 118.175.76.231
แต่ Error หลายที่โดยเฉพาะผู้ป่วยใน Error หมดเลย Duplicate entry Key...............
Post โดย : huwko Date: 2010-11-03 10:53:15 ip: 118.175.76.231
สงสับน้ำท่วมSERVERป่าวเนี้ย
ขอให้แก้ไขได้เร็วๆนะครับเทพadmin
Post โดย : tano Date: 2010-11-04 12:04:25 ip: 223.207.12.18
Resync VN ใหม่ครับพี่โก้
Post โดย : smakui Date: 2010-11-04 21:35:29 ip: 115.87.145.87
links ศึกษา MySQL
http://www.java2s.com/Tutorial/MySQL/0020__Introduction/Catalog0020__Introduction.htm
เดี๋ยวว่างจะอัพคู่มือ MySQL ฉบับภาษาไทยให้ครับ
Post โดย : smakui Date: 2010-11-05 14:12:47 ip: 115.87.145.87
links ศึกษา MySQL
http://www.java2s.com/Tutorial/MySQL/0020__Introduction/Catalog0020__Introduction.htm
เดี๋ยวว่างจะอัพคู่มือ MySQL ฉบับภาษาไทยให้ครับ
Post โดย : smakui Date: 2010-11-05 14:13:13 ip: 115.87.145.87
เป็นไงลูกพี่ หรือจะไปเรียน My SL กับผมป่าว
Post โดย : kamo0073 Date: 2010-11-05 14:20:47 ip: 118.175.76.119
น่าสนนะ Mysl อบรมที่ไหนครับ
ดีนะเรามีสถานที่แลกเปลี่ยนเรียนรู้สิ่งดีๆๆสำหรับชาวไอที....
Post โดย : tano Date: 2010-11-05 14:52:58 ip: 223.206.195.130