หัวข้อ: ขอความช่วยเหลือเรื่องเงื่อนไข PHP+Mysql ทีครับ เริ่มหัวข้อโดย: $100perday ที่ 23 กุมภาพันธ์ 2013, 11:16:01 คือผมมีตารางชื่อว่า products
ประกอบด้วยฟิลด์ 1. cateid หมวดสินค้า 2. productname ชื่อสินค้า ตัวอย่างรายการ cateid | producsname --------------------------- 1 | ปากกาเขียว 1 | ปากกาแดง 1 | ปากกาดำ 1 | ปากกาม่วง 2 | ดินสอเขียว 2 | ดินสอแดง 2 | ดินสอดำ 2 | ดินสอม่วง 3 | ยางลบเขียว 3 | ยางลบแดง 3 | ยางลบดำ 3 | ยางลบม่วง ความต้องการคือ ต้องการแสดงข้อมูลใน ตาราง products มา cateid ละ 2 รายการเท่านั้น และแสดงแบบสุ่มอ่ะครับ ไม่ทราบว่าเขียน code ยังไงครับ รบกวนทีนะครับ :wanwan017: หัวข้อ: Re: ขอความช่วยเหลือเรื่องเงื่อนไข PHP+Mysql ทีครับ เริ่มหัวข้อโดย: zankumuro ที่ 23 กุมภาพันธ์ 2013, 11:30:57 โค๊ด: $categoryQuery = mysql_query("SELECT cateid FROM Table_Category"); หัวข้อ: Re: ขอความช่วยเหลือเรื่องเงื่อนไข PHP+Mysql ทีครับ เริ่มหัวข้อโดย: $100perday ที่ 23 กุมภาพันธ์ 2013, 11:46:20 โค๊ด: $categoryQuery = mysql_query("SELECT cateid FROM Table_Category"); งงนิดนึงครับ แต่ก็ขอบคุณครับ คืดตามที่ผมยกตัวอย่างจะมี 12 รายการ ถ้าเขียนเงื่อนไขแล้ว จะได้แค่ 6 รายการมาแสดงครับ คือ หมวดที่ 1 สองตัว หมวดที่ 2สองตัว และ หมวดที่ 3 สองตัว เท่านั้นอ่ะครับ หัวข้อ: Re: ขอความช่วยเหลือเรื่องเงื่อนไข PHP+Mysql ทีครับ เริ่มหัวข้อโดย: MapTwoZa ที่ 23 กุมภาพันธ์ 2013, 15:50:57 select * from (
select id,id2 as val1, (select id2 from test where id = t.id and id2 != t.id2 order by rand() limit 1) as val2 from test t order by id, rand() ) as result group by id ปล. เปลี่ยน id เป็น cateid, id2 เป็น productname, test เป็น products หัวข้อ: Re: ขอความช่วยเหลือเรื่องเงื่อนไข PHP+Mysql ทีครับ เริ่มหัวข้อโดย: MapTwoZa ที่ 23 กุมภาพันธ์ 2013, 16:30:17 ไปลองมาอีกแบบ อันนี้จะเอากี่ record ก็ได้ กำหนดตรง where ตัวสุดท้าย
## ชื่อ column + table ไปแก้เอง ตารางที่ผมเทส tablename = test, columns = {id,id2} select * from ( select *, @num := if(@some_id = id, @num := @num + 1, 1) as row_num, @some_id := id as some_id from ( select id,id2 from test t order by id, rand() ) as a, (SELECT @some_id:=0, @num:=0) as init ) as b where row_num <= 2 หัวข้อ: Re: ขอความช่วยเหลือเรื่องเงื่อนไข PHP+Mysql ทีครับ เริ่มหัวข้อโดย: $100perday ที่ 23 กุมภาพันธ์ 2013, 17:18:17 ไปลองมาอีกแบบ อันนี้จะเอากี่ record ก็ได้ กำหนดตรง where ตัวสุดท้าย ## ชื่อ column + table ไปแก้เอง ตารางที่ผมเทส tablename = test, columns = {id,id2} select * from ( select *, @num := if(@some_id = id, @num := @num + 1, 1) as row_num, @some_id := id as some_id from ( select id,id2 from test t order by id, rand() ) as a, (SELECT @some_id:=0, @num:=0) as init ) as b where row_num <= 2 ขอบคุณมากครับ :wanwan017: |