auto_increment ใน Mysql

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: auto_increment ใน Mysql

โดย mindphp » 26/10/2007 4:27 pm

ไม่ได้ ว่า อะไร ครับ:-D แค่ ชวนให้คิดหนุกๆ
วิธี คือ
1.update field นั้นให้ เป็น 1 ทั้งหมด ก่อน
2.เขียน php เพื่อดึงค่าทั้งหมด ของ field นั้นออกมา
3.วน loop ข้อมูลที่ได้ ออกมานั้น และ เอาค่า ใน loop ที่กำหนดให้ เพิ่มขึ้นที่ละ 1 ในแต่ ละ loop มาใส่ตัวแปลซักตัว
4.เอาตัวแปลนั้นสั่ง update table ใหม่ โดยระบุ เงือนไขที่ให้ ในการ update จาก field อื่นๆที่ไม่ซ้ำกัน :arrow:

โดย lacoste » 26/10/2007 7:11 am

ไม่ใช่ไม่คิดนะคับ แต่คิดไม่ออกอะคับ ใช้คำสั่ง DEFINE() กำหนดค่าหรือเปล่า อย่างที่บอกคับ ยังไม่บรรลุซักเท่าไหร่ ถ้ายังงัยเดี๋ยวผมจะลองศึกษาดูอีกนิด ยังงัยก็ช่วยยกตัวอย่างซักนิดนะคับ ผมอาจจะเห็นภาพมากขึ้น

ขอบคุณที่ให้คำแนะนำคับ

<เพิ่งเริ่มต้นอ่านและศึกษาด้วยตัวเองมาไม่กี่เดือนคับ ยัง งงๆ อยู่ต้องขอ อภัยด้วยงับ T_T>

โดย mindphp » 26/10/2007 1:29 am

ลอง คิดดู ก่อนนะครับ โดย เริ่ม จาก กำหนด ทั้ง หมดที่มีอยู่ ให้ เป็น 1 ให้ หมด ก่อน :-D :-D
แล้วไง ต่อ ลอง คิดดู :-D :-D :-D คิดหนุกๆ เดี๋ยว พรุ่งนี้ มาดูกัน อาจมีได้มากว่า หนึ่งงิธี :lol: :lol:

โดย lacoste » 25/10/2007 4:38 pm

พอดีผมเพิ่งจะหัดเขียน php อะคับยังไม่บรรลุเท่าที่ควร คำถามที่ 2 เนี่ย ถ้าเราจะเพื่มการเขียนสคิปที่เป็น php เข้าไป update จะต้องทำอย่างไรคับ รบกวนอธิบายให้หน่อยได้ไหมคับ ขอบคุณล่วงหน้าคับ
:?
ขอให้ความดีจงสถิตอยู่กับตัวท่าน

โดย mindphp » 25/10/2007 11:08 am

ใช้วิธี ลบ ข้อมูล อย่างไรครับ
ส่วน ข้อ สอง ตอนนี้ ยัง คิดมะออก ง่ะครับ mysql อย่างเดียว อาจทำไม่ได้
แต่ถ้า เขียน php เข้าไป update ทำได้ ครับ

auto_increment ใน Mysql

โดย lacoste » 25/10/2007 7:33 am

สมมุติว่าผมมี table หนึ่งอยู่ที่ mysql ชื่อ tb_product และ มีฟิลด์ id_prd int(11) เป็น primary key และ set ค่า เป็นแบบ auto_increment.

พอผมมีการ insert ข้อมูลเข้าไปที่ database เรื่อย ๆ ฟิลด์ id_prd ก็มีค่าเพิ่มขึ้นเรื่อยๆ สมมุติมี 10 record ก็จะมีค่าตั้งแต่ 1-10

หลังจากนั้น ผมต้องการลบ record ทั้งหมดทิ้ง

คำถามที่ 1 คือ ทำยังงัยจะให้ ฟิลด์ id_prd มีค่าเริ่มต้นเป็น 1 ใหม่ เหมือนเดิมครับ ??

เพราะถ้าเรา insert data เข้าไปใหม่ ฟิลด์ id_prd จะเริ่ม count ต่อไปเป็น 11 ครับ

คำถามที่ 2 คือ ถ้าลบเฉพาะ บาง record อย่างเช่น ผมไปลบ record ที่ 5 กับ 1 ทำอย่างไรให้มันเรียงลำดับใหม่ อัตโนมัติ โดยที่ ข้อมูลไม่สูญหายคับ (ไม่ทราบว่าอันนี้ทำได้ไหม หรือมีวิธีอื่นที่แนะนำคับ)

ข้างบน