คำสั่ง SQL Copy ข้อมูล Columnนึง ไปใส่อีก Columnนึง
UPDATE TableName SET FieldName1 = FieldName2
จาก sql ด้านบนคือ copy ข้อมูลใน FieldName2 ไปใส่ FieldName1
UPDATE TableName SET FieldName1 = FieldName2
จาก sql ด้านบนคือ copy ข้อมูลใน FieldName2 ไปใส่ FieldName1
UPDATE TableName SET FieldName = REPLACE( FieldName ,'คำที่ค้นหา','คำที่เอามาแทน' )
คิดว่ามีประโยชน์เมื่อถึงเวลาจำเป็น
เอาเป็นว่าสมมติมีโจทย์ที่ต้องการดึงข้อมูลจาก”ตาราง Customer” ไปเก็บใน “ตาราง CustomerTmp” ซึ่งเลือกเฉพาะฟิลด์ที่ต้องการ และเก็บวันที่บันทึกลงไปด้วย โดยให้เงื่อนไขว่า เงินเดือนต้องมากกว่า 20,000 บาท ก็จะได้คำสั่งตามด้านล่างนี้
INSERT INTO CustomerTmp (Name,Salary,DateAdd) SELECT Name,Salary,NOW() FROM Customer WHERE Salary > 20000
รูปแบบก็คำสั่ง Insert ปกติ แต่สังเกตุจะไม่มี VALUES อยู่ด้วย และฝั่งข้อมูลเข้าก็จะใช้คำสั่ง SELECT ตารางกันตรงๆเลย เป็นอันเสร็จพิธีจ้า…
ตอนนี้อาจจะยังไม่มีประโยชน์ แต่ถ้าเจอโจทย์แนวนี้คงได้ใช้กันบ้างล่ะ ผมขี้ลืมเลยเอามาแป่ะไว้ดีกว่า
อธิบายไม่ถูกขอยก ตย.แล้วกันเช่น
ให้ข่าวหนึ่งข่าวมีอายุการแสดงได้ 3 เดือน โดยเริ่มนับจากวันที่บันทึก(ฟิลด์ชื่อ “AddDate”) ก็จะได้ sql ด้านล่างนี้
SELECT * FROM TbNews WHERE (NOW( ) >= AddDate AND NOW( ) < DATE_ADD(AddDate, INTERVAL 3 MONTH ))
แปล Sql ดังนี้
เลือกทุกฟิลด์จากตาราง TbNews โดย”วันปัจจุบัน”ต้องมากกว่าหรือเท่ากับ”วันที่บันทึก”
และ “วันปัจจุบัน” ต้องน้อยกว่า “วันที่บันทึกบวกเพิ่มอีก 3 เดือน”
ตัวอย่างต้องการค้นหาเลข ‘18′ ตำแหน่งที่ ‘3′ เปรียบเทียบ ‘2′ หลัก
SELECT * FROM TableName WHERE MID(Field, 3, 2 ) = '18'
ตัวอย่างเช่นหาค่า “1″ ในตำแหน่งที่ 2 ของfield
SELECT * FROM TableName WHERE FieldName like '_1%'