Tags:

ผมมีตารางข้อมูลของข้อมูลวิชาเลือกนักเรียน ซึ่งแต่ละเทอมมี 3 วิชา

No Description

ปัญหามีมีอยู่ว่าเวลาผมจะค้นหาข้อมูลนักเรียนที่มีวิชาเลือกเนี่ย ผมต้องทำแบบนี้

SELECT * FROM subject_member WHERE member_now_1=1 OR member_now_2=1 OR member_now_3=1;

ผมคิดว่าถ้าเขียนแบบนี้ มันจะไม่ค่อยเป็น dynamic สักเท่าไหร่นะครับ

ผมอยากทราบว่า ระหว่าง

  1. ใช้ php ตรวจสอบว่าตารางที่ขึ้นต้นด้วย member_now มีกี่ช่อง แล้วใช้ for ลูปแล้วเขียน OR เพิ่มไปเรื่อยๆ กับ
  2. ยุบ member_now ให้มีคอลัมน์เดียว เปลี่ยนเป็น varchar ขนาด 12 แล้วค้นหาด้วยการ

    WHERE member_now LIKE %1%;

    แต่ผมกังวลว่ามันจะมีผลต่อความเร็วในการ query ข้อมูลออกมา และไม่สะดวกเวลาค้นหาเป็นสายชั้นด้วย

หรือถ้ามีวิธีอื่นที่น่าสนใจก็เสนอกันได้นะครับ

ขอบคุณมากครับ _/\_

Get latest news from Blognone
By: massacre
AndroidUbuntu
on 9 February 2013 - 23:40 #539275

ถ้าเก็บข้อมูลลง column: member_course เช่น 'term1_1', 'term1_2', 'term1_3'
แล้วหาข้อมูลล่าสุดก็ where member_course like 'term11_%'
ถ้าหาชั้นไหนก็ where member_course like 'term6_%' อย่างนี้ได้ไหมครับ